import { InternalBehavior } from "./InternalBehavior";
import { PiCaret } from "../util/BehaviorUtils";
import { PiElement } from "../language/PiModel";
import { PiProjection } from "./PiProjection";
import { Box } from "./boxes/Box";
import { KeyboardShortcutBehavior, PiActions } from "./PiAction";
export declare class PiEditor {
    private _rootElement;
    readonly actions?: PiActions;
    readonly projection: PiProjection;
    readonly behaviors: InternalBehavior[];
    keyboardActions: KeyboardShortcutBehavior[];
    private $selectedBox;
    private $projectedElement;
    private selectedElement;
    selectedPosition: PiCaret;
    private selectedRole;
    constructor(projection: PiProjection, actions?: PiActions);
    initializeAliases(actions?: PiActions): void;
    get projectedElement(): HTMLDivElement;
    set projectedElement(e: HTMLDivElement);
    selectElement(element: PiElement, role?: string, caretPosition?: PiCaret): Promise<void>;
    selectBox(box: Box | null, caretPosition?: PiCaret): Promise<void>;
    get selectedBox(): Box;
    set selectedBox(box: Box);
    get rootBox(): Box;
    selectParentBox(): void;
    selectFirstLeafChildBox(): void;
    selectNextLeaf(): void;
    selectPreviousLeaf(): Promise<void>;
    deleteBox(box: Box): Promise<void>;
    selectFirstEditableChildBox(): Promise<void>;
    set rootElement(exp: PiElement);
    get rootElement(): PiElement;
}
//# sourceMappingURL=PiEditor.d.ts.map