import Yasgui, { EndpointButton, EndpointConfig } from "./";
import * as Tab from "./Tab";
import type { WorkspaceConfig } from "./queryManagement/types";
export declare var storageNamespace: string;
export interface PersistedJson {
    endpointHistory: string[];
    tabs: string[];
    active: string | undefined;
    tabConfig: {
        [tabId: string]: Tab.PersistedJson;
    };
    lastClosedTab: {
        index: number;
        tab: Tab.PersistedJson;
    } | undefined;
    prefixes?: string;
    autoCaptureEnabled?: boolean;
    customEndpointButtons?: EndpointButton[];
    endpointConfigs?: EndpointConfig[];
    workspaces?: WorkspaceConfig[];
    activeWorkspaceId?: string;
    theme?: "light" | "dark";
    orientation?: "vertical" | "horizontal";
    showSnippetsBar?: boolean;
    disabledDevButtons?: string[];
}
export default class PersistentConfig {
    private persistedJson;
    private storageId;
    private yasgui;
    private storage;
    constructor(yasgui: Yasgui);
    setActive(id: string): void;
    getActiveId(): string | undefined;
    addToTabList(tabId: string, index?: number): void;
    setTabOrder(tabs: string[]): void;
    getEndpointHistory(): string[];
    retrieveLastClosedTab(): {
        index: number;
        tab: Tab.PersistedJson;
    };
    hasLastClosedTab(): boolean;
    deleteTab(tabId: string): void;
    private registerListeners;
    private toStorage;
    private fromStorage;
    private handleLocalStorageQuotaFull;
    getTabs(): string[];
    getTab(tabId: string): Tab.PersistedJson;
    setTab(tabId: string, tabConfig: Tab.PersistedJson): void;
    tabIsActive(tabId: string): boolean;
    currentId(): string;
    getPrefixes(): string;
    setPrefixes(prefixes: string): void;
    getAutoCaptureEnabled(): boolean;
    setAutoCaptureEnabled(enabled: boolean): void;
    getCustomEndpointButtons(): EndpointButton[];
    setCustomEndpointButtons(buttons: EndpointButton[]): void;
    getShowSnippetsBar(): boolean | undefined;
    setShowSnippetsBar(show: boolean): void;
    getEndpointConfigs(): EndpointConfig[];
    setEndpointConfigs(configs: EndpointConfig[]): void;
    addOrUpdateEndpoint(endpoint: string, updates: Partial<Omit<EndpointConfig, "endpoint">>): void;
    getEndpointConfig(endpoint: string): EndpointConfig | undefined;
    deleteEndpointConfig(endpoint: string): void;
    getWorkspaces(): WorkspaceConfig[];
    getWorkspace(workspaceId: string): WorkspaceConfig | undefined;
    setWorkspaces(workspaces: WorkspaceConfig[]): void;
    addOrUpdateWorkspace(workspace: WorkspaceConfig): void;
    deleteWorkspace(workspaceId: string): void;
    getActiveWorkspaceId(): string | undefined;
    setActiveWorkspaceId(workspaceId: string | undefined): void;
    static clear(): void;
    getPersistedConfig(): PersistedJson;
    updatePersistedConfig(config: Partial<PersistedJson>): void;
    getDisabledDevButtons(): string[];
    setDisabledDevButtons(endpoints: string[]): void;
    toggleDevButton(endpoint: string, enabled: boolean): void;
}
