import { Emitter } from '@difizen/mana-common';
import type { ContextKeyExpression, IContextKey } from './vs/contextkey';
import { VSContextKeyService } from './vs/contextKeyService';
export type ContextKeyChangeEvent = {
    affects: (keys: Set<string>) => boolean;
};
export declare class ContextKeyService {
    protected readonly onDidChangeEmitter: Emitter<ContextKeyChangeEvent>;
    readonly onDidChange: import("@difizen/mana-common").Event<ContextKeyChangeEvent>;
    protected fireDidChange(event: ContextKeyChangeEvent): void;
    protected readonly contextKeyService: VSContextKeyService;
    protected readonly vsContextKeyService: VSContextKeyService;
    constructor(vsContextKeyService: VSContextKeyService);
    protected init(): void;
    createKey<T>(key: string, defaultValue: T | undefined): IContextKey<T>;
    activeContext?: HTMLElement;
    match(expression: string, context?: HTMLElement): boolean;
    protected readonly expressions: Map<string, ContextKeyExpression>;
    protected parse(when: string): ContextKeyExpression | undefined;
    parseKeys(expression: string): Set<string> | undefined;
}
//# sourceMappingURL=context-key-service.d.ts.map