import type { Form } from './type-helpers/form';
import type { ExtensionPropsBase, ConfigValue } from './base';
import type { Model } from './type-helpers/model';
import type { AppInstallation } from './type-helpers/appInstallation';
import type { Field } from './type-helpers/field';
export declare const FieldExtensionType: {
    readonly STRING: "STRING";
    readonly RICHTEXT: "RICHTEXT";
    readonly INT: "INT";
    readonly FLOAT: "FLOAT";
    readonly BOOLEAN: "BOOLEAN";
    readonly JSON: "JSON";
    readonly DATETIME: "DATETIME";
    readonly DATE: "DATE";
    readonly LOCATION: "LOCATION";
    readonly COLOR: "COLOR";
    readonly ENUMERATION: "ENUMERATION";
    readonly RELATION: "RELATION";
    readonly ASSET: "ASSET";
    readonly UNION: "UNION";
};
export declare const FieldExtensionFeature: {
    readonly FieldRenderer: "FieldRenderer";
    readonly ListRenderer: "ListRenderer";
    readonly TableRenderer: "TableRenderer";
};
export interface FieldExtensionProps extends ExtensionPropsBase {
    extension: {
        config: ConfigValue;
        tableConfig: ConfigValue;
        fieldConfig: ConfigValue;
        id: string;
    };
    isExpanded: boolean;
    expand: (expand: boolean | ((isExpanded: boolean) => boolean)) => unknown;
    name: string;
    locale: string | undefined;
    entryId: string | null;
    isTableCell: boolean;
    isReadOnly: boolean | undefined;
    value: any;
    onBlur: (event?: FocusEvent) => Promise<void>;
    onChange: (event: InputEvent | any) => Promise<void>;
    onFocus: (event?: FocusEvent) => Promise<void>;
    meta: {
        active: boolean;
        error: any;
        touched: boolean;
    };
    form: Form;
    field: Field;
    model: Model;
    installation: AppInstallation;
}
