import { IStringDictionary } from "../../../base/common/collections.js"; import { IPolicyData } from "../../../base/common/defaultAccount.js"; import { Emitter, Event } from "../../../base/common/event.js"; import { Disposable } from "../../../base/common/lifecycle.js"; import { PolicyName } from "../../../base/common/policy.js"; import { IPolicyService } from "./policy.service.js"; export type PolicyValue = string | number | boolean; export type PolicyDefinition = { type: "string" | "number" | "boolean"; value?: (policyData: IPolicyData) => string | number | boolean | undefined; }; export declare abstract class AbstractPolicyService extends Disposable implements IPolicyService { readonly _serviceBrand: undefined; policyDefinitions: IStringDictionary; protected policies: Map; protected readonly _onDidChange: Emitter; readonly onDidChange: Event; updatePolicyDefinitions(policyDefinitions: IStringDictionary): Promise>; getPolicyValue(name: PolicyName): PolicyValue | undefined; serialize(): IStringDictionary<{ definition: PolicyDefinition; value: PolicyValue; }>; protected abstract _updatePolicyDefinitions(policyDefinitions: IStringDictionary): Promise; } export declare class NullPolicyService implements IPolicyService { readonly _serviceBrand: undefined; readonly onDidChange: Event; updatePolicyDefinitions(): Promise<{}>; getPolicyValue(): undefined; serialize(): undefined; policyDefinitions: IStringDictionary; }