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

import { Disposable } from '@sussudio/base/common/lifecycle.mjs';
import { ITerminalCapabilityImplMap, ITerminalCapabilityStore, TerminalCapability } from './capabilities.mjs';
export declare class TerminalCapabilityStore extends Disposable implements ITerminalCapabilityStore {
	private _map;
	private readonly _onDidRemoveCapability;
	readonly onDidRemoveCapability: import('@sussudio/base/common/event.mjs').Event<TerminalCapability>;
	private readonly _onDidAddCapability;
	readonly onDidAddCapability: import('@sussudio/base/common/event.mjs').Event<TerminalCapability>;
	get items(): IterableIterator<TerminalCapability>;
	add<T extends TerminalCapability>(capability: T, impl: ITerminalCapabilityImplMap[T]): void;
	get<T extends TerminalCapability>(capability: T): ITerminalCapabilityImplMap[T] | undefined;
	remove(capability: TerminalCapability): void;
	has(capability: TerminalCapability): boolean;
}
export declare class TerminalCapabilityStoreMultiplexer extends Disposable implements ITerminalCapabilityStore {
	readonly _stores: ITerminalCapabilityStore[];
	private readonly _onDidRemoveCapability;
	readonly onDidRemoveCapability: import('@sussudio/base/common/event.mjs').Event<TerminalCapability>;
	private readonly _onDidAddCapability;
	readonly onDidAddCapability: import('@sussudio/base/common/event.mjs').Event<TerminalCapability>;
	get items(): IterableIterator<TerminalCapability>;
	private _items;
	has(capability: TerminalCapability): boolean;
	get<T extends TerminalCapability>(capability: T): ITerminalCapabilityImplMap[T] | undefined;
	add(store: ITerminalCapabilityStore): void;
}
