export interface EditorPanelContribution {
    readonly id: string;
    readonly title: string;
    readonly order?: number;
}
export interface EditorToolContribution {
    readonly id: string;
    readonly title: string;
    readonly cursor?: string;
}
export interface EditorImporterContribution {
    readonly id: string;
    readonly label: string;
    readonly extensions: readonly string[];
}
export interface EditorScriptingNodeContribution {
    readonly id: string;
    readonly title: string;
    readonly category: string;
}
export interface EditorPlugin {
    readonly id: string;
    readonly name: string;
    readonly panels?: readonly EditorPanelContribution[];
    readonly tools?: readonly EditorToolContribution[];
    readonly importers?: readonly EditorImporterContribution[];
    readonly scriptingNodes?: readonly EditorScriptingNodeContribution[];
}
export interface EditorPluginSnapshot {
    readonly plugins: readonly EditorPlugin[];
    readonly panels: readonly EditorPanelContribution[];
    readonly tools: readonly EditorToolContribution[];
    readonly importers: readonly EditorImporterContribution[];
    readonly scriptingNodes: readonly EditorScriptingNodeContribution[];
}
export declare class EditorPluginHost {
    private readonly plugins;
    register(plugin: EditorPlugin): void;
    unregister(id: string): boolean;
    get(id: string): EditorPlugin | undefined;
    list(): readonly EditorPlugin[];
    snapshot(): EditorPluginSnapshot;
    clear(): void;
    private assertUnique;
}
//# sourceMappingURL=EditorPluginHost.d.ts.map