import { Disposable } from "../../../../base/common/lifecycle.js"; import { IReader } from "../../../../base/common/observable.js"; import { IStorageService } from "../../../../platform/storage/common/storage.service.js"; export declare enum ContributionEnablementState { DisabledProfile = 0, DisabledWorkspace = 1, EnabledProfile = 2, EnabledWorkspace = 3 } export declare function isContributionEnabled(state: ContributionEnablementState): boolean; export declare function isContributionDisabled(state: ContributionEnablementState): boolean; export interface IEnablementModel { readEnabled(key: string, reader?: IReader): ContributionEnablementState; setEnabled(key: string, state: ContributionEnablementState): void; remove(key: string): void; } /** * A reusable enablement model for string-keyed contributions. Uses * `observableMemento` to persist enable/disable state in both profile-scoped * and workspace-scoped storage. * * Resolution order: if a workspace-scoped entry exists for a key, it wins. * Otherwise, the profile-scoped entry is used. The default (absence of any * entry) is {@link ContributionEnablementState.EnabledProfile}. */ export declare class EnablementModel extends Disposable implements IEnablementModel { private readonly _profileState; private readonly _workspaceState; constructor(storageKey: string, storageService: IStorageService); readEnabled(key: string, reader?: IReader): ContributionEnablementState; setEnabled(key: string, state: ContributionEnablementState): void; remove(key: string): void; private _setInMap; private _deleteFromMap; }