import { type Ref } from 'vue'; export interface StorageRef extends Ref { reload(): void; startSync(): void; stopSync(): void; save(): void; clear(): void; } type StorageRefOptions = { key: string; sync?: 'when-mounted' | 'always'; storage?: 'local' | 'session'; deep?: boolean; debounce?: number; }; type StorageRefDefault = { default: () => T; }; type StorageRefNoDefault = { default?: undefined; }; type StorageRefOptionsRaw = StorageRefOptions & { json?: false; serialize?: undefined; deserialize?: undefined; }; type StorageRefOptionsCustom = StorageRefOptions & { serialize: (value: T) => string; deserialize: (value: string) => T; json?: false; }; type StorageRefOptionsJson = StorageRefOptions & { json: true; serialize?: undefined; deserialize?: undefined; }; export declare function storageRef(options: StorageRefOptionsRaw & StorageRefDefault): StorageRef; export declare function storageRef(options: StorageRefOptionsRaw & StorageRefNoDefault): StorageRef; export declare function storageRef(options: StorageRefOptionsJson & StorageRefDefault): StorageRef; export declare function storageRef(options: StorageRefOptionsJson & StorageRefNoDefault): StorageRef; export declare function storageRef(options: StorageRefOptionsCustom): StorageRef; export declare function storageRef(options: StorageRefOptionsCustom & StorageRefDefault): StorageRef; export {};