import { PropType } from 'vue';
import { Options as ScrollIntoViewOptions } from 'scroll-into-view-if-needed';
import { FieldData, FieldRule, ValidatedError } from './interface';
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    model: {
        type: ObjectConstructor;
        required: true;
    };
    layout: {
        type: PropType<"horizontal" | "vertical" | "inline">;
        default: string;
    };
    size: {
        type: PropType<"mini" | "small" | "medium" | "large">;
    };
    labelColProps: {
        type: ObjectConstructor;
        default: () => {
            span: number;
            offset: number;
        };
    };
    wrapperColProps: {
        type: ObjectConstructor;
        default: () => {
            span: number;
            offset: number;
        };
    };
    labelColStyle: ObjectConstructor;
    wrapperColStyle: ObjectConstructor;
    labelAlign: {
        type: PropType<"left" | "right">;
        default: string;
    };
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    rules: {
        type: PropType<Record<string, FieldRule<any> | FieldRule<any>[]>>;
    };
    autoLabelWidth: {
        type: BooleanConstructor;
        default: boolean;
    };
    id: {
        type: StringConstructor;
    };
    scrollToFirstError: {
        type: BooleanConstructor;
        default: boolean;
    };
}>, {
    cls: import("vue").ComputedRef<(string | {
        [x: string]: boolean;
    })[]>;
    formRef: import("vue").Ref<HTMLFormElement | undefined, HTMLFormElement | undefined>;
    handleSubmit: (e: Event) => void;
    innerValidate: (callback?: ((errors: undefined | Record<string, ValidatedError>) => void) | undefined) => Promise<undefined | Record<string, ValidatedError>>;
    innerValidateField: (field: string | string[], callback?: ((errors: undefined | Record<string, ValidatedError>) => void) | undefined) => Promise<Record<string, ValidatedError> | undefined>;
    innerResetFields: (field?: string | string[] | undefined) => void;
    innerClearValidate: (field?: string | string[] | undefined) => void;
    innerSetFields: (data: Record<string, FieldData>) => void;
    innerScrollToField: (field: string, options?: ScrollIntoViewOptions<any> | undefined) => void;
}, {}, {}, {
    validate(callback?: ((errors: undefined | Record<string, ValidatedError>) => void) | undefined): Promise<undefined | Record<string, ValidatedError>>;
    validateField(field: string | string[], callback?: ((errors: undefined | Record<string, ValidatedError>) => void) | undefined): Promise<undefined | Record<string, ValidatedError>>;
    resetFields(field?: string | string[] | undefined): void;
    clearValidate(field?: string | string[] | undefined): void;
    setFields(data: Record<string, FieldData>): void;
    scrollToField(field: string): void;
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    submit: (data: {
        values: Record<string, any>;
        errors: Record<string, ValidatedError> | undefined;
    }, ev: Event) => true;
    submitSuccess: (values: Record<string, any>, ev: Event) => true;
    submitFailed: (data: {
        values: Record<string, any>;
        errors: Record<string, ValidatedError>;
    }, ev: Event) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    model: {
        type: ObjectConstructor;
        required: true;
    };
    layout: {
        type: PropType<"horizontal" | "vertical" | "inline">;
        default: string;
    };
    size: {
        type: PropType<"mini" | "small" | "medium" | "large">;
    };
    labelColProps: {
        type: ObjectConstructor;
        default: () => {
            span: number;
            offset: number;
        };
    };
    wrapperColProps: {
        type: ObjectConstructor;
        default: () => {
            span: number;
            offset: number;
        };
    };
    labelColStyle: ObjectConstructor;
    wrapperColStyle: ObjectConstructor;
    labelAlign: {
        type: PropType<"left" | "right">;
        default: string;
    };
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    rules: {
        type: PropType<Record<string, FieldRule<any> | FieldRule<any>[]>>;
    };
    autoLabelWidth: {
        type: BooleanConstructor;
        default: boolean;
    };
    id: {
        type: StringConstructor;
    };
    scrollToFirstError: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{
    onSubmit?: ((data: {
        values: Record<string, any>;
        errors: Record<string, ValidatedError> | undefined;
    }, ev: Event) => any) | undefined;
    onSubmitSuccess?: ((values: Record<string, any>, ev: Event) => any) | undefined;
    onSubmitFailed?: ((data: {
        values: Record<string, any>;
        errors: Record<string, ValidatedError>;
    }, ev: Event) => any) | undefined;
}>, {
    disabled: boolean;
    layout: "horizontal" | "vertical" | "inline";
    labelColProps: Record<string, any>;
    wrapperColProps: Record<string, any>;
    labelAlign: "left" | "right";
    autoLabelWidth: boolean;
    scrollToFirstError: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
