import { NotationView } from "../../carnatic";
export interface NotationBlockConfig {
    createViewer: (container: HTMLDivElement) => NotationView;
    cssClasses?: {
        root?: string;
        sourceContainer?: string;
        sourceCaption?: string;
        sourceCode?: string;
        outputLabel?: string;
        outputContainer?: string;
    };
}
export default class NotationBlock {
    readonly container: HTMLElement;
    readonly config: NotationBlockConfig;
    id: string;
    source: string;
    caption: string;
    height: string;
    newRoot: HTMLDivElement;
    notationView: NotationView;
    showSource: boolean;
    isEditing: boolean;
    editTextarea: HTMLTextAreaElement | null;
    sourceCodeElement: HTMLElement | null;
    constructor(container: HTMLElement, config: NotationBlockConfig);
    updatePreview(): void;
    get captionId(): string;
    copyToClipboard(): Promise<void>;
    toggleEditMode(): void;
    enterEditMode(): void;
    exitEditMode(): void;
    applyEdit(): void;
    cancelEdit(): void;
}
