import { UseFormProps } from 'react-hook-form';
import { AnyObject } from '../../types';
type SyncPolicyLiteral = 'default-values-first' | 'storage-first';
interface WebStorage {
    getItem(key: string, ...args: any[]): any;
    setItem(key: string, value: any, ...args: any[]): any;
    removeItem(key: string, ...args: any[]): any;
}
export interface FormPersistProps<T extends AnyObject = AnyObject> {
    key: string;
    storage?: WebStorage;
    excludeFields?: (keyof T)[];
    includeFields?: (keyof T)[];
}
export declare const useHookFormPersist: <T extends AnyObject = AnyObject>({ key: keyStorage, storage, excludeFields, includeFields, }: FormPersistProps<T>) => {
    syncFromStorage: ({ defaultValues, syncPolicy, }: {
        defaultValues?: UseFormProps<T>['defaultValues'];
        syncPolicy?: SyncPolicyLiteral;
    }) => Promise<T>;
    syncToStorage: (watchedValues: T) => void;
    clear: () => Promise<void>;
};
export {};
