/**
 * Copyright (c) OpenLens Maintainers. All rights reserved.
 * Licensed under MIT License. See LICENSE in root directory for more information.
 */
import type { StorageLayer } from "../../../utils/storage-helper";
import type { CreateStorage } from "../../../utils/create-storage/create-storage.injectable";
import type { TabId } from "../dock/store";
export interface DockTabStoreOptions {
    autoInit?: boolean;
    storageKey?: string;
}
export type DockTabStorageState<T> = Record<TabId, T>;
export interface DockTabStoreDependencies {
    createStorage: CreateStorage;
}
export declare class DockTabStore<T> {
    protected readonly dependencies: DockTabStoreDependencies;
    protected readonly options: DockTabStoreOptions;
    protected readonly storage?: StorageLayer<DockTabStorageState<T>>;
    private readonly data;
    constructor(dependencies: DockTabStoreDependencies, options: DockTabStoreOptions);
    protected finalizeDataForSave(data: T): T;
    protected toJSON(): DockTabStorageState<T>;
    protected getAllData(): [string, T][];
    findTabIdFromData(inspecter: (val: T) => any): TabId | undefined;
    isReady(tabId: TabId): boolean;
    getData(tabId: TabId): T | undefined;
    setData(tabId: TabId, data: T): void;
    clearData(tabId: TabId): void;
    reset(): void;
}
