import SideBySideEditor, { SideBySideEditorConfig } from "./SideBySideEditor";
import { Notation } from "../../notation";
import { GlobalBeatLayout } from "../../beats";
export interface DockViewPlaygroundConfig {
    initialSource?: string;
    showConsole?: boolean;
    persistLayout?: boolean;
    storageKey?: string;
    layoutVersion?: number;
    syncScroll?: boolean;
    markdownParser?: (content: string) => string;
    editorConfig?: Partial<SideBySideEditorConfig>;
    onSourceChange?: (source: string) => void;
    onNotationParsed?: (notation: Notation, beatLayout: GlobalBeatLayout) => void;
    onParseError?: (errors: any[]) => void;
    isDarkMode?: () => boolean;
    editorClass?: string;
    outputClass?: string;
}
export default class DockViewPlayground {
    readonly container: HTMLElement;
    readonly config: DockViewPlaygroundConfig;
    private dockview;
    private sideBySideEditor;
    private consoleOutput;
    private consoleEntries;
    constructor(container: HTMLElement, config?: DockViewPlaygroundConfig);
    get editor(): SideBySideEditor | null;
    get source(): string;
    set source(value: string);
    log(message: string, level?: "info" | "error" | "warning"): void;
    clearConsole(): void;
    render(): boolean;
    destroy(): void;
    resetLayout(): void;
    private _consoleVisible;
    isConsoleVisible(): boolean;
    showConsole(): void;
    hideConsole(): void;
    toggleConsole(): boolean;
    private init;
    private isDarkMode;
    private saveLayout;
    private loadLayout;
    private createComponent;
    private createDefaultLayout;
    private createEditorPanel;
    private createOutputPanel;
    private createConsolePanel;
    private renderConsoleEntry;
}
