/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

import { IStringDictionary } from '@sussudio/base/common/collections.mjs';
import { Event } from '@sussudio/base/common/event.mjs';
import { IChannel, IServerChannel } from '@sussudio/base/parts/ipc/common/ipc.mjs';
import { AbstractPolicyService, IPolicyService, PolicyDefinition, PolicyValue } from './policy.mjs';
export declare class PolicyChannel implements IServerChannel {
	private service;
	private readonly disposables;
	constructor(service: IPolicyService);
	listen(_: unknown, event: string): Event<any>;
	call(_: unknown, command: string, arg?: any): Promise<any>;
	dispose(): void;
}
export declare class PolicyChannelClient extends AbstractPolicyService implements IPolicyService {
	private readonly channel;
	constructor(
		policiesData: IStringDictionary<{
			definition: PolicyDefinition;
			value: PolicyValue;
		}>,
		channel: IChannel,
	);
	protected _updatePolicyDefinitions(policyDefinitions: IStringDictionary<PolicyDefinition>): Promise<void>;
}
