export declare type FormData = any;
export interface DataSchema extends SchemaObjectProperty {
    /**
     * Collections of properties.
     */
    properties: SchemaProperty[];
}
export declare enum SchemaPrimitiveType {
    /**
     * Default format: a single line text box.
     */
    String = 0,
    /**
     * Default format: a single line text box to input the number.
     */
    Number = 1,
    /**
     * Default format: a checkbox.
     */
    Boolean = 2,
    /**
     * Default format: a file uploading control.
     */
    File = 3,
    /**
     * Default format: no specific UI control. Default format is used to render all the child properties.
     */
    Object = 4,
    /**
     * Default format: TBD.
     */
    Array = 5
}
export interface SchemaProperty {
    type?: SchemaPrimitiveType;
    format?: string;
    name?: string;
    label?: string;
    defaultValue?: any;
    description?: string;
    required?: boolean;
    options?: any;
    hideCondition?: string;
    readonlyCondition?: string;
    disabledCondition?: string;
    customValidation?: string;
    customAsyncValidation?: {
        handler: string;
        pendingMessage: string;
        debounceTime: number;
    };
}
export interface SchemaObjectProperty extends SchemaProperty {
    properties: SchemaProperty[];
    emptyByDefault?: boolean;
}
export interface SchemaArrayProperty extends SchemaProperty {
    item: SchemaProperty;
}
export declare class SchemaFieldContext {
    isEditorMode: boolean;
    formData: any;
    formController: any;
    parentData: any;
}
