import type { Api, IIRendererStore, RendererProps, SchemaExpression } from 'jamis-core';
import type { IFormItemStore, IFormStore } from '../types';
export interface ControlOutterProps extends Omit<RendererProps, '$schema'> {
    formStore?: IFormStore;
    name?: string;
    value?: any;
    id?: string;
    type?: string;
    required?: boolean;
    validations: string | {
        [propsName: string]: any;
    };
    validationErrors: {
        [propsName: string]: any;
    };
    validateOnChange: boolean;
    multiple?: boolean;
    delimiter?: string;
    joinValues?: boolean;
    extractValue?: boolean;
    valueField?: string;
    labelField?: string;
    unique?: boolean;
    selectFirst?: boolean;
    autoFill?: any;
    clearValueOnHidden?: boolean;
    validateApi?: Api;
    submitOnChange?: boolean;
    validate?: (value: any, values: any, name: string) => any;
    formItem?: IFormItemStore;
    addHook?: (fn: () => any, type: 'validate' | 'init' | 'flush') => void;
    removeHook?: (fn: () => any, type: 'validate' | 'init' | 'flush') => void;
    $schema: RendererProps['$schema'] & {
        pipeIn?: ((value: any, data: any) => any) | SchemaExpression;
        pipeOut?: ((value: any, originValue: any, data: any) => any) | SchemaExpression;
        [propName: string]: any;
    };
    store?: IIRendererStore;
    onChange?: (value: any, name: string, submit?: boolean, changePristine?: boolean) => void;
    formItemDispatchEvent?: (type: string, data: any) => void;
}
export interface ControlProps {
    onBulkChange?: (values: Object) => void;
    onChange?: (value: any, name: string, submit: boolean) => void;
    store: IFormItemStore;
}
