import { IStorage } from './storage.js';

type LocalStorageOptions = {
    /**
     * max number of records.
     */
    readonly max?: number;
};
declare class LocalStorage<T = any> implements IStorage<string, T> {
    protected readonly _store: Map<string, T>;
    protected readonly _keys: string[];
    protected readonly _options: LocalStorageOptions;
    get keys(): string[];
    get size(): number;
    constructor(data?: Record<string, T>, options?: LocalStorageOptions);
    get(key: string): T | undefined;
    set(key: string, value: T): void;
    delete(key: string): void;
    toString(): string;
    protected _hit(key: string): boolean;
}

export { LocalStorage, type LocalStorageOptions };
