import { SchemaDefinition, FieldBuilder } from './form-flow';
export type FormState = 'idle' | 'submitting' | 'success' | 'error';
export interface Props<T extends Record<string, any> = Record<string, any>> {
    schema: SchemaDefinition<T>;
    modelValue?: T;
    components?: Record<string, any>;
    errors?: Record<string, string>;
    /** Async submit handler — FormFlow awaits it and manages formState. */
    onSubmit?: (data: T) => Promise<void> | void;
}
declare const _default: <T extends Record<string, any>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
        readonly "onUpdate:modelValue"?: ((value: T) => any) | undefined;
    } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onUpdate:modelValue"> & Props<T> & Partial<{}>> & import('vue').PublicProps;
    expose(exposed: import('vue').ShallowUnwrapRef<{
        validate: () => boolean;
        submit: (event?: Event) => Promise<boolean>;
        formState: import('vue').Ref<FormState, FormState>;
    }>): void;
    attrs: any;
    slots: Readonly<{
        submit?: ((_: {
            submit: (event?: Event) => Promise<boolean>;
            validate: () => boolean;
            formData: T;
            errors: Record<string, string>;
            formState: FormState;
        }) => any) | undefined;
        success?: ((_: {
            formData: T;
        }) => any) | undefined;
        error?: ((_: {
            formData: T;
        }) => any) | undefined;
        errors?: (_: {
            errors: Record<string, string>;
            errorCount: number;
            visibleFields: {
                key: string;
                field: FieldBuilder;
            }[];
        }) => any;
    } & Partial<Record<`field:${string}`, (_: {
        value: any;
        field: FieldBuilder;
        formData: T;
        error: string;
        onChange: (val: any) => void;
    }) => any>>> & {
        submit?: ((_: {
            submit: (event?: Event) => Promise<boolean>;
            validate: () => boolean;
            formData: T;
            errors: Record<string, string>;
            formState: FormState;
        }) => any) | undefined;
        success?: ((_: {
            formData: T;
        }) => any) | undefined;
        error?: ((_: {
            formData: T;
        }) => any) | undefined;
        errors?: (_: {
            errors: Record<string, string>;
            errorCount: number;
            visibleFields: {
                key: string;
                field: FieldBuilder;
            }[];
        }) => any;
    } & Partial<Record<`field:${string}`, (_: {
        value: any;
        field: FieldBuilder;
        formData: T;
        error: string;
        onChange: (val: any) => void;
    }) => any>>;
    emit: (evt: "update:modelValue", value: T) => void;
}>) => import('vue').VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};
export default _default;
type __VLS_PrettifyLocal<T> = {
    [K in keyof T]: T[K];
} & {};
//# sourceMappingURL=FormFlow.vue.d.ts.map