import { BaseCustomWebComponentLazyAppend, TypedEvent } from "@node-projects/base-custom-webcomponent";
import { DesignerView } from './widgets/designerView/designerView.js';
import { ServiceContainer } from './services/ServiceContainer.js';
import { InstanceServiceContainer } from './services/InstanceServiceContainer.js';
import { ICodeView } from './widgets/codeView/ICodeView.js';
import { IDemoView } from './widgets/demoView/IDemoView.js';
import { IUiCommandHandler } from '../commandHandling/IUiCommandHandler.js';
import { IUiCommand } from '../commandHandling/IUiCommand.js';
import { IDisposable } from '../interfaces/IDisposable.js';
import { ISelectionChangedEvent } from "./services/selectionService/ISelectionChangedEvent.js";
import { IStylesheet } from "./services/stylesheetService/IStylesheetService.js";
export declare class DocumentContainer extends BaseCustomWebComponentLazyAppend implements IUiCommandHandler, IDisposable {
    designerView: DesignerView;
    codeView: ICodeView & HTMLElement;
    demoView: IDemoView & HTMLElement;
    additionalData: any;
    private _firstLoad;
    private _stylesheetChangedEventRegistered;
    private _additionalStyle;
    set additionalStyleString(style: string);
    get additionalStyleString(): string;
    private _additionalStyles;
    set additionalStyles(value: CSSStyleSheet[]);
    get additionalStyles(): CSSStyleSheet[];
    private _additionalStylesheets;
    set additionalStylesheets(stylesheets: IStylesheet[]);
    get additionalStylesheets(): IStylesheet[];
    additionalStylesheetChanged: TypedEvent<{
        name: string;
        newStyle: string;
        oldStyle: string;
        changeSource: "extern" | "styleupdate" | "undo";
    }>;
    get readOnly(): boolean;
    set readOnly(v: boolean);
    onContentChanged: TypedEvent<{
        source: "designer" | "code";
    }>;
    onTabChanged: TypedEvent<{
        oldTab: "designer" | "code" | "split" | "preview";
        newTab: "designer" | "code" | "split" | "preview";
    }>;
    private _contentChangeSource;
    private _serviceContainer;
    private _content;
    private _tabControl;
    private _selectionPosition;
    private _splitDiv;
    private _designerDiv;
    private _codeDiv;
    private refreshInSplitViewDebounced;
    private _disableChangeNotificationDesigner;
    private _disableChangeNotificationEditor;
    static get style(): CSSStyleSheet;
    constructor(serviceContainer: ServiceContainer, content?: string, useIframe?: boolean);
    refreshInSplitView(): Promise<void>;
    get currentView(): 'designer' | 'split' | 'code' | 'preview';
    set currentView(view: 'designer' | 'split' | 'code' | 'preview');
    designerSelectionChanged(e: ISelectionChangedEvent): void;
    designerContentChanged(): void;
    dispose(): void;
    executeCommand(command: IUiCommand): void;
    canExecuteCommand(command: IUiCommand): boolean;
    setContentAsync(value: string): Promise<void>;
    set content(value: string);
    get content(): string;
    ready(): void;
    private updateDesignerHtml;
    get instanceServiceContainer(): InstanceServiceContainer;
}
