/// <reference path="../../../../src/@types/@kano/common/index.d.ts" />
import { SourceEditor } from './source-editor.js';
import '../../elements/kc-blockly-editor/kc-blockly-editor.js';
import { Workspace, Block, Field } from '@kano/kwc-blockly/blockly.js';
import './blockly/patches/index.js';
import Editor from '../editor/editor.js';
import { QueryEngine } from '../editor/selector/selector.js';
import '../blockly/core/xml.js';
import BlocklyMetaRenderer from './blockly/api-renderer.js';
export declare class BlocklySourceEditor implements SourceEditor {
    editor: Editor;
    private _onDidCodeChange;
    private _onDidSourceChange;
    private _onDidLayout;
    domNode: HTMLElement;
    private apiRenderer?;
    constructor(editor: Editor);
    triggerLayout(): void;
    readonly onDidCodeChange: import("@kano/common/index.js").IEvent<string>;
    readonly onDidLayout: import("@kano/common/index.js").IEvent<void>;
    readonly onDidSourceChange: import("@kano/common/index.js").IEvent<any>;
    setToolbox(toolbox: any): void;
    setSource(source: string): void;
    setFlyoutMode(flyoutMode: boolean): void;
    setInputDisabled(isInputDisabled: boolean): void;
    getSource(): any;
    getWorkspace(): Workspace;
    findBlockForSvgElement(el: HTMLElement): Block | null;
    findFieldForSvgElementAndBlock(el: HTMLElement, block: Block): Field | undefined;
    elementFromPoint(x: number, y: number): any;
    blockFromPoint(x: number, y: number): Block | null;
    logBlockUnderCursor(): void;
    getToolbox(): any[];
    getToolboxById(id: string): any;
    getToolboxBlockByType(id: string, type: string): any;
    registerQueryHandlers(engine: QueryEngine): void;
    getInputPosition(block: Block, name?: string): ClientRect;
    getBlockByType(workspace: Workspace, type: string): Block | undefined;
    getApiRenderer(): BlocklyMetaRenderer;
}
