import { Emitter } from 'nanoevents';
import { ELayoutState, GetLayoutParamType, GetLayoutType, ILayout, LayoutPlaybackType, OptionsType } from '../../Types/Layout';
import { ILayoutEvents } from "../../types";
import { IXlr } from '../../Types/XLR';
import './layout.css';
import ActionController, { Action } from '../ActionController';
import { IRegion } from '../../types';
export declare function initRenderingDOM(targetContainer: Element | null): void;
export declare function getXlf(layoutOptions: OptionsType): Promise<string>;
export declare function handleAxiosError(error: any, message?: string): void;
export declare function getLayout(params: GetLayoutParamType): GetLayoutType;
export default class Layout implements ILayout {
    id: number | null;
    layoutId: number;
    sw: number;
    sh: number;
    xw: number;
    xh: number;
    duration: number;
    zIndex: number;
    scaleFactor: number;
    sWidth: number;
    sHeight: number;
    offsetX: number;
    offsetY: number;
    bgColor: string;
    bgImage: string;
    bgId: string;
    containerName: string;
    regionMaxZIndex: number;
    ready: boolean;
    regionObjects: IRegion[];
    drawer: Element | null;
    allExpired: boolean;
    regions: IRegion[];
    actions: Action[];
    done: boolean;
    allEnded: boolean;
    emitter: Emitter<ILayoutEvents>;
    index: number;
    actionController: ActionController | undefined;
    enableStat: boolean;
    inLoop: boolean;
    xlfString: string;
    ad: any;
    isOverlay: boolean;
    shareOfVoice: number;
    state: ELayoutState;
    scheduleId?: number;
    layoutNode?: Document;
    path?: string;
    errorCode: number | null;
    html: HTMLElement | null;
    options: OptionsType;
    xlr: IXlr;
    private readonly layoutObj;
    protected readonly statsBC: BroadcastChannel;
    constructor(xlrLayoutObj: ILayout, options: OptionsType, xlr: IXlr, data?: Document);
    prepareLayout(): void;
    parseXlf(): void;
    run(): void;
    playRegions(): void;
    regionExpired(): void;
    end(): void;
    regionEnded(): void;
    stopAllMedia(): Promise<void>;
    resetLayout(): Promise<void>;
    finishAllRegions(): Promise<void[]>;
    removeLayout(caller?: LayoutPlaybackType): void;
    discardLayout(caller?: LayoutPlaybackType): void;
    getXlf(): string;
    isInterrupt(): boolean;
    on<E extends keyof ILayoutEvents>(event: E, callback: ILayoutEvents[E]): import("nanoevents").Unsubscribe;
}
