import { CellModel, NotebookCssClasses } from "../types/notebook";
export interface NotebookCellConfig {
    cssClasses?: NotebookCssClasses;
    markdownParser?: (content: string) => string;
    showDeleteButton?: boolean;
    showMoveButtons?: boolean;
    onStartEdit?: (cellId: string) => void;
    onApplyEdit?: (cellId: string, newSource: string) => void;
    onCancelEdit?: (cellId: string) => void;
    onDelete?: (cellId: string) => void;
    onMoveUp?: (cellId: string) => void;
    onMoveDown?: (cellId: string) => void;
    onToggleExpanded?: (cellId: string) => void;
    createChildCell?: (cell: CellModel, parent: HTMLElement) => NotebookCell;
}
export default class NotebookCell {
    readonly element: HTMLDivElement;
    readonly cell: CellModel;
    readonly config: NotebookCellConfig;
    private childCells;
    private editTextarea;
    constructor(cell: CellModel, config?: NotebookCellConfig);
    private buildRootClassName;
    private render;
    private renderHeader;
    private createBadge;
    private createControls;
    private renderError;
    private renderContent;
    private renderPreviewMode;
    private renderEditMode;
    private renderChildren;
    private handleStartEdit;
    private handleApplyEdit;
    private handleCancelEdit;
    private handleDelete;
    private handleToggleExpanded;
    getEditSource(): string;
    update(newCell: CellModel): void;
    destroy(): void;
}
