import type { UnsetOptions, GetOptions, ListOptions, SetOptions, StorageItem, FlushOptions, DefaultOptions } from "./storage.types";
/**
 * @name get
 * @description Stores data with a given key name and returns the stored value
 */
export declare function get<T = any>(key: StorageItem["key"], options?: GetOptions): T | StorageItem<T>;
/**
 * @name set
 * @description Returns the value of the provided key name
 */
export declare function set<T = any>(key: StorageItem["key"], value: T, options?: SetOptions): T;
/**
 * @name list
 * @description Returns all stored data so far. If passed `{extended: true}`, returns also specific options for the given key
 */
export declare function list(options?: ListOptions): Record<string, any>;
/**
 * @name isSet
 * @description Checks if a key exists. If existed but already deleted, returns `false`.
 */
export declare function isSet(key: string): boolean;
/**
 * @name unset
 * @description Deletes the data stored with the given name
 */
export declare function unset(key: string, options?: UnsetOptions): void;
/**
 * @name flush
 * @description Deletes all stored data
 */
export declare function flush(options?: FlushOptions): undefined;
/**
 * @name isProtected
 * @description Checks if a key was stored with protection (cannot delete except if `force: true` is specified).
 */
export declare function isProtected(key: string): boolean;
/**
 * @name default
 * @description Override default specific options for all transactions
 */
export declare function defaultOption<T extends keyof DefaultOptions>(key: T, value: DefaultOptions[T]): void;
