/// <reference path="../../../../src/@types/@kano/common/index.d.ts" />
import { IEvent } from '@kano/common/index.js';
import { QueryEngine } from '../editor/selector/selector.js';
import { Editor } from '../editor/editor.js';
import { IMetaRenderer } from '../meta-api/module.js';
export interface SourceEditor {
    onDidCodeChange: IEvent<string>;
    onDidLayout: IEvent<void>;
    setFlyoutMode(flyoutMode: boolean): void;
    setToolbox(toolbox: any): void;
    setSource(source: string): void;
    getSource(): string;
    domNode: HTMLElement;
    registerQueryHandlers(engine: QueryEngine): void;
    getApiRenderer(): IMetaRenderer;
    editor: Editor;
}
interface SourceEditorConstructor {
    new (...args: any[]): SourceEditor;
}
export declare function registerSourceEditor(id: string, sourceEditorClass: SourceEditorConstructor): import("@kano/common/index.js").IDisposable;
export declare function getSourceEditor(id: string): SourceEditorConstructor | undefined;
export {};
