import { IEventEmitter, ILogger, MemoryStorageConfig, StorageType } from '../storage.interface';
import { StorageKeyType } from '../utils/storage-key';
import { SyncBaseStorage } from './sync-base-storage.service';
export declare class MemoryStorage<T extends Record<string, any>> extends SyncBaseStorage<T> {
    protected static readonly STORAGE_TYPE: StorageType;
    readonly type: StorageType;
    private storage;
    constructor(config: MemoryStorageConfig<T>, eventEmitter?: IEventEmitter, logger?: ILogger);
    static create<T extends Record<string, any>>(config: MemoryStorageConfig<T>, eventEmitter?: IEventEmitter, logger?: ILogger): MemoryStorage<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;
    protected doDestroy(): Promise<void>;
}
