import { GridLayoutGroup } from "../../grids";
import { Notation } from "../../notation";
import { NotebookConfig, CellModel, CellOperations } from "../types/notebook";
export default class NotebookView implements CellOperations {
    readonly rootElement: HTMLDivElement;
    readonly config: NotebookConfig;
    readonly gridLayoutGroup: GridLayoutGroup;
    private notation;
    private notationSource;
    private cells;
    private cellElements;
    private cellNotationViews;
    private layoutChangeUnsubscribe;
    constructor(container: HTMLElement, config?: Partial<NotebookConfig>);
    loadNotation(source: string): void;
    getNotation(): Notation | null;
    getCells(): CellModel[];
    getVisibleCells(): CellModel[];
    getCell(cellId: string): CellModel | null;
    private render;
    private renderCell;
    private renderCellHeader;
    private renderCellPreviewMode;
    private renderCellEditMode;
    private renderAddCellButton;
    private handleLayoutChange;
    startEdit(cellId: string): void;
    applyEdit(cellId: string, newSource: string): void;
    cancelEdit(cellId: string): void;
    deleteCell(cellId: string): void;
    moveCell(cellId: string, targetIndex: number): void;
    insertCell(index: number, source: string): CellModel;
    toggleExpanded(cellId: string): void;
    private replaceCellInTree;
    private rerenderCell;
    destroy(): void;
}
