import { IEventEmitter, ILogger, LocalStorageConfig, StorageType } from '../storage.interface';
import { StorageKeyType } from '../utils/storage-key';
import { SyncBaseStorage } from './sync-base-storage.service';
export declare class LocalStorage<T extends Record<string, any>> extends SyncBaseStorage<T> {
    protected static readonly STORAGE_TYPE: StorageType;
    readonly type: StorageType;
    constructor(config: LocalStorageConfig<T>, eventEmitter?: IEventEmitter, logger?: ILogger);
    static create<T extends Record<string, any>>(config: LocalStorageConfig, eventEmitter?: IEventEmitter, logger?: ILogger): LocalStorage<T>;
    protected doInitialize(): Promise<this>;
    protected doGet(key: StorageKeyType): any;
    protected doSet(key: StorageKeyType, value: any): void;
    protected doRemove(key: StorageKeyType): boolean;
    protected doUpdate(updates: Array<{
        key: StorageKeyType;
        value: any;
    }>): void;
    protected doClear(): void;
    protected doKeys(): string[];
    protected doHas(key: StorageKeyType): boolean;
    /** Персистентное хранилище: по умолчанию НЕ чистим данные на destroy (симметрично IndexedDB). */
    protected get clearOnDestroyDefault(): boolean;
    /** Версия схемы хранится отдельным sidecar-ключом, не засоряя сам state. */
    private get versionStorageKey();
    protected readPersistedVersion(): number | undefined;
    protected writePersistedVersion(version: number): void;
    protected clearPersistedVersion(): void;
    protected doDestroy(): Promise<void>;
}
