import { TlReaderMap, TlWriterMap } from '@mtcute/tl-runtime'; import { ICorePlatform } from '../types/platform.js'; import { Logger } from '../utils/logger.js'; import { IStorageDriver } from './driver.js'; import { IMtStorageProvider } from './provider.js'; import { AuthKeysService } from './service/auth-keys.js'; import { DefaultDcsService } from './service/default-dcs.js'; import { FutureSaltsService } from './service/future-salts.js'; interface StorageManagerOptions { provider: IMtStorageProvider; platform: ICorePlatform; log: Logger; readerMap: TlReaderMap; writerMap: TlWriterMap; } /** * Additional options for {@link StorageManager}, that * can be customized by the user. * * @internal */ export interface StorageManagerExtraOptions { /** * Interval in milliseconds for saving the storage. * * When saving, the storage is expected to persist * all changes to disk, so that they are not lost. */ saveInterval?: number; /** * Whether to finalize database before exiting. * * @default `true` */ cleanup?: boolean; } export declare class StorageManager { readonly options: StorageManagerOptions & StorageManagerExtraOptions; readonly provider: IMtStorageProvider; readonly driver: IStorageDriver; readonly platform: ICorePlatform; readonly log: Logger; readonly dcs: DefaultDcsService; readonly salts: FutureSaltsService; readonly keys: AuthKeysService; constructor(options: StorageManagerOptions & StorageManagerExtraOptions); private _cleanupRestore?; private _load; load(): Promise; save(): Promise; clear(withAuthKeys?: boolean): Promise; private _destroy; destroy(): Promise; } export {};