/// <reference types="react" />
import { Customer, CustomerCreate, RequestError, RequestStatus } from '@open-tender/types';
export declare const useProfileForm: (profile: Customer | null, loading: RequestStatus, error: RequestError, update: (data: CustomerCreate) => void, callback?: ((data: CustomerCreate) => void) | undefined, optionalFields?: string[], disabledFields?: string[]) => {
    submitRef: import("react").MutableRefObject<HTMLButtonElement | null>;
    data: Customer | null;
    errors: Record<string, string>;
    submitting: boolean;
    fields: ({
        disabled: boolean | undefined;
        description?: string | undefined;
        id?: string | undefined;
        label?: string | undefined;
        name: string;
        on?: boolean | undefined;
        onChange?: import("react").ChangeEventHandler<HTMLInputElement> | undefined;
        required?: boolean | undefined;
        showLabel?: boolean | undefined;
        type: string;
    } | {
        disabled: boolean | undefined;
        autoComplete?: string | undefined;
        children?: JSX.Element | undefined;
        error?: string | null | undefined;
        icon?: JSX.Element | undefined;
        label?: string | undefined;
        max?: number | undefined;
        min?: number | undefined;
        name: string;
        onChange?: import("react").ChangeEventHandler<HTMLInputElement> | undefined;
        onBlur?: ((evt: any) => void) | undefined;
        pattern?: string | undefined;
        placeholder?: string | undefined;
        readOnly?: boolean | undefined;
        required?: boolean | undefined;
        showLabel?: boolean | undefined;
        style?: import("react").CSSProperties | undefined;
        type: string;
        value?: string | number | undefined;
        maxLength?: number | undefined;
    } | {
        disabled: boolean | undefined;
        error?: string | null | undefined;
        label: string;
        name: string;
        onChange?: import("react").ChangeEventHandler<HTMLSelectElement> | undefined;
        options: {
            name: string;
            value: string;
            disabled?: boolean | undefined;
        }[];
        required?: boolean | undefined;
        showLabel?: boolean | undefined;
        type: string;
        value?: string | number | undefined;
    } | {
        disabled: boolean | undefined;
        id?: string | undefined;
        label: string;
        name: string;
        on?: boolean | undefined;
        onChange?: import("react").ChangeEventHandler<HTMLInputElement> | undefined;
        type: string;
    } | {
        disabled: boolean | undefined;
        error?: string | null | undefined;
        icon?: JSX.Element | undefined;
        label: string;
        name: string;
        onChange?: import("react").ChangeEventHandler<HTMLTextAreaElement> | undefined;
        placeholder?: string | undefined;
        readOnly?: boolean | undefined;
        required?: boolean | undefined;
        showLabel?: boolean | undefined;
        style?: import("react").CSSProperties | undefined;
        type: string;
        value?: string | undefined;
    })[];
    handleChange: (name: string, value: string | number | boolean) => void;
    handleSubmit: (evt?: React.FormEvent<HTMLFormElement>) => void;
};
