import type { ComputedRef, InjectionKey } from 'vue';
import type { ValidateMessages } from '@antdv/ui/es/locale';
import type { ValidateStatus } from '@antdv/ui/es/types';
import type { ColProps } from '../../grid';
import type { FieldExpose, FormLabelAlign, RequiredMark, Rule } from './interface';
export declare const FormContextKey: InjectionKey<FormContextProps>;
export interface FormContextProps {
    model?: ComputedRef<any>;
    vertical: ComputedRef<boolean>;
    name?: ComputedRef<string>;
    colon?: ComputedRef<boolean>;
    labelAlign?: ComputedRef<FormLabelAlign>;
    labelWrap?: ComputedRef<boolean>;
    labelCol?: ComputedRef<ColProps>;
    wrapperCol?: ComputedRef<ColProps>;
    requiredMark?: ComputedRef<RequiredMark>;
    addField: (eventKey: string, field: FieldExpose) => void;
    removeField: (eventKey: string) => void;
    validateTrigger?: ComputedRef<string | string[]>;
    rules?: ComputedRef<{
        [k: string]: Rule[] | Rule;
    }>;
    onValidate: (name: string | number | Array<string | number>, status: boolean, errors: string[] | null) => void;
    validateMessages: ComputedRef<ValidateMessages>;
}
export declare function useProvideForm(state: FormContextProps): void;
export declare function useInjectForm(): FormContextProps;
/** Used for ErrorList only */
export interface FormItemPrefixContextProps {
    prefixCls: ComputedRef<string>;
    status?: ComputedRef<ValidateStatus>;
}
export declare const FormItemPrefixContextKey: InjectionKey<FormItemPrefixContextProps>;
export declare function useProvideFormItemPrefix(state: FormItemPrefixContextProps): void;
export declare function useInjectFormItemPrefix(): FormItemPrefixContextProps;
