import { MaybeRefOrGetter, Ref } from 'vue';
import { FormConfig, FormConfigData, FormConfigFieldConfig, FormConfigMeta } from './FormConfig.model';
export declare function useFormConfig(configInput: MaybeRefOrGetter<FormConfig>): {
    values: Ref<FormConfigData, FormConfigData>;
    errors: Ref<Record<string, string>, Record<string, string>>;
    touched: Ref<Record<string, boolean>, Record<string, boolean>>;
    currentStepIndex: Ref<number, number>;
    isSubmitting: Ref<boolean, boolean>;
    isMultiStep: import('vue').ComputedRef<boolean>;
    visibleSteps: import('vue').ComputedRef<import('./FormConfig.model').FormConfigStep[]>;
    currentStep: import('vue').ComputedRef<import('./FormConfig.model').FormConfigStep | null>;
    currentStepFields: import('vue').ComputedRef<FormConfigFieldConfig[]>;
    visibleFields: import('vue').ComputedRef<FormConfigFieldConfig[]>;
    allFields: import('vue').ComputedRef<FormConfigFieldConfig[]>;
    isFirstStep: import('vue').ComputedRef<boolean>;
    isLastStep: import('vue').ComputedRef<boolean>;
    isDirty: import('vue').ComputedRef<boolean>;
    isValid: import('vue').ComputedRef<boolean>;
    meta: import('vue').ComputedRef<FormConfigMeta>;
    setValue: (key: string, value: unknown) => void;
    setValues: (data: FormConfigData) => void;
    setError: (key: string, message: string) => void;
    clearError: (key: string) => void;
    clearAllErrors: () => void;
    setTouched: (key: string) => void;
    validateField: (key: string) => boolean;
    validateStep: () => boolean;
    validateAll: () => boolean;
    reset: () => void;
    nextStep: () => boolean;
    prevStep: () => boolean;
    goToStep: (index: number) => void;
    checkFieldVisible: (field: FormConfigFieldConfig) => boolean;
    checkFieldDisabled: (field: FormConfigFieldConfig) => boolean;
    init: () => void;
};
export type UseFormConfig = ReturnType<typeof useFormConfig>;
