import * as Common from '../../core/common/common.js'; import { type ContextFlavorListener } from './ContextFlavorListener.js'; interface ConstructorFn { new (...args: any[]): T; } export declare class Context { private readonly flavorsInternal; private readonly eventDispatchers; private constructor(); static instance(opts?: { forceNew: boolean | null; }): Context; static removeInstance(): void; setFlavor(flavorType: ConstructorFn, flavorValue: T | null): void; private dispatchFlavorChange; addFlavorChangeListener(flavorType: ConstructorFn, listener: (arg0: Common.EventTarget.EventTargetEvent) => void, thisObject?: Object): void; removeFlavorChangeListener(flavorType: ConstructorFn, listener: (arg0: Common.EventTarget.EventTargetEvent) => void, thisObject?: Object): void; flavor(flavorType: ConstructorFn): T | null; flavors(): Set>; } declare enum Events { FlavorChanged = "FlavorChanged" } export type EventTypes = { [Events.FlavorChanged]: any; }; export declare function registerListener(registration: ContextFlavorListenerRegistration): void; export interface ContextFlavorListenerRegistration { contextTypes: () => Array; loadListener: () => Promise; } export {};