import { IJSONSchema } from "../../../../base/common/jsonSchema.js"; import { IMessage } from "./extensions.js"; import { IExtensionDescription } from "../../../../platform/extensions/common/extensions.js"; import { ExtensionKind } from "../../../../platform/environment/common/environment.js"; import { IActivationEventsGenerator } from "../../../../platform/extensionManagement/common/implicitActivationEvents.js"; import { IDisposable } from "../../../../base/common/lifecycle.js"; export declare class ExtensionMessageCollector { private readonly _messageHandler; private readonly _extension; private readonly _extensionPointId; constructor(messageHandler: (msg: IMessage) => void, extension: IExtensionDescription, extensionPointId: string); private _msg; error(message: string): void; warn(message: string): void; info(message: string): void; } export interface IExtensionPointUser { description: IExtensionDescription; value: T; collector: ExtensionMessageCollector; } export type IExtensionPointHandler = (extensions: readonly IExtensionPointUser[], delta: ExtensionPointUserDelta) => void; export interface IExtensionPoint { readonly name: string; setHandler(handler: IExtensionPointHandler): IDisposable; readonly defaultExtensionKind: ExtensionKind[] | undefined; readonly canHandleResolver?: boolean; } export declare class ExtensionPointUserDelta { readonly added: readonly IExtensionPointUser[]; readonly removed: readonly IExtensionPointUser[]; private static _toSet; static compute(previous: readonly IExtensionPointUser[] | null, current: readonly IExtensionPointUser[]): ExtensionPointUserDelta; constructor(added: readonly IExtensionPointUser[], removed: readonly IExtensionPointUser[]); } export declare class ExtensionPoint implements IExtensionPoint { readonly name: string; readonly defaultExtensionKind: ExtensionKind[] | undefined; readonly canHandleResolver?: boolean; private _handler; private _users; private _delta; constructor(name: string, defaultExtensionKind: ExtensionKind[] | undefined, canHandleResolver?: boolean); setHandler(handler: IExtensionPointHandler): IDisposable; acceptUsers(users: IExtensionPointUser[]): void; private _handle; } export declare const schema: IJSONSchema; export type removeArray = T extends Array ? X : T; export interface IExtensionPointDescriptor { extensionPoint: string; deps?: IExtensionPoint[]; jsonSchema: IJSONSchema; defaultExtensionKind?: ExtensionKind[]; canHandleResolver?: boolean; /** * A function which runs before the extension point has been validated and which * should collect automatic activation events from the contribution. */ activationEventsGenerator?: IActivationEventsGenerator>; } export declare class ExtensionsRegistryImpl { private readonly _extensionPoints; registerExtensionPoint(desc: IExtensionPointDescriptor): IExtensionPoint; getExtensionPoints(): ExtensionPoint[]; } export declare const ExtensionsRegistry: ExtensionsRegistryImpl;