import { FormBuilderComputedField, FormBuilderDirection, FormBuilderField, FormBuilderInfoText, FormBuilderMode, FormBuilderText } from "./formbuilder-types";
import { PropType } from "vue";
declare const _default: import("vue/types/v3-define-component").DefineComponent<{
    fields: {
        type: PropType<FormBuilderField<any>[]>;
        required: true;
        default: () => never[];
    };
    customRules: {
        type: PropType<Record<string, any>>;
        default: () => {};
    };
    externalErrors: {
        type: PropType<Record<string, any>>;
        default: () => {};
    };
    resetValuesOnFieldUpdate: {
        type: BooleanConstructor;
        default: () => false;
    };
    accordion: {
        type: BooleanConstructor;
        default: () => false;
    };
    direction: {
        type: PropType<FormBuilderDirection>;
        default: () => "column";
    };
    title: {
        type: StringConstructor;
        default: () => null;
    };
    mode: {
        type: PropType<FormBuilderMode>;
        default: () => "aggressive";
    };
}, import("vue").Data, {
    /**
     * Values are passed or displayed in default slot of component
     */
    valuesInSlot: string[];
    /**
     * Field property to propogate as component prop
     */
    propsToPropogate: string[];
    /**
     * No component required to display this type
     */
    noComponentRequired: string[];
    /**
     * No need to return values
     */
    nonInputTypes: string[];
    /**
     * Possible types of fields and their default props and other config
     */
    types: Record<string, any>;
    /**
     * Default field label style config
     */
    label: FormBuilderText;
    /**
     * Default help style config
     */
    help: FormBuilderText;
    /**
     * Default info style config
     */
    info: FormBuilderInfoText;
    /**
     * All Field values
     */
    values: {
        [key: string]: any;
    };
}, {
    wrapper(): "div" | "AccordionField";
    /**
     * Converts simplyfied fields to respective Vue component
     */
    computedFields(): FormBuilderComputedField[];
}, {
    setExternalErrors(): void;
    /**
     * Checks if field has suggested value and add respective behaviour.
     * Supported only on InputText for now
     */
    checkIfSuggested(field: FormBuilderComputedField, value: string): void;
    /**
     * Checks if field has an existing value
     */
    isFieldInValues(computedField: FormBuilderComputedField): boolean;
    /**
     * Get field id
     */
    getFieldId(field: FormBuilderField): string;
    generateId(length?: number): string;
    getFormValues(): Record<string, any>;
    checkVisibility(field: FormBuilderComputedField): boolean;
    /**
     * Handles input event of each field or subform
     */
    handleInput(e: Event | any, field: FormBuilderComputedField, validate: (value: any) => void): void;
    /**
     * Set value of field
     */
    setValue(id: string, value: any, computedFiled: FormBuilderComputedField): void;
    emitInput(): void;
    /**
     * Add subform values
     */
    handleInitialValues(value: any, field: FormBuilderComputedField): void;
    /**
     * Removes files from file array based on name
     */
    removeFile(filename: string, field: FormBuilderComputedField, validate: (value: any) => void): void;
    validateAndSubmit(): Promise<boolean>;
    /**
     * Form validation api
     */
    validateForm(): Promise<boolean>;
    /**
     * Handle field click event
     */
    handleClick(event: Event, field: FormBuilderComputedField): void;
    handleTextClick(text?: FormBuilderText): void;
    enableInfoSlot(field: FormBuilderComputedField): boolean | undefined;
    addOption(field: FormBuilderComputedField, newoption: string): void;
    checkErrorsState(field: FormBuilderComputedField, errors: unknown[], passed: unknown): string;
    isOldSafari(): boolean;
    getFieldLabel(field: FormBuilderComputedField): string | undefined;
}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, ("input" | "submit" | "initialValues" | "beforeInput")[], string, Readonly<import("vue").ExtractPropTypes<{
    fields: {
        type: PropType<FormBuilderField<any>[]>;
        required: true;
        default: () => never[];
    };
    customRules: {
        type: PropType<Record<string, any>>;
        default: () => {};
    };
    externalErrors: {
        type: PropType<Record<string, any>>;
        default: () => {};
    };
    resetValuesOnFieldUpdate: {
        type: BooleanConstructor;
        default: () => false;
    };
    accordion: {
        type: BooleanConstructor;
        default: () => false;
    };
    direction: {
        type: PropType<FormBuilderDirection>;
        default: () => "column";
    };
    title: {
        type: StringConstructor;
        default: () => null;
    };
    mode: {
        type: PropType<FormBuilderMode>;
        default: () => "aggressive";
    };
}>>, {
    title: string;
    direction: FormBuilderDirection;
    mode: FormBuilderMode;
    accordion: boolean;
    fields: FormBuilderField<any>[];
    customRules: Record<string, any>;
    externalErrors: Record<string, any>;
    resetValuesOnFieldUpdate: boolean;
}>;
export default _default;
