import { DefaultEvents, Emitter, Unsubscribe } from 'nanoevents';
import { ILayout } from '../Layout';
import { IMedia } from '../Media';
import { IRegionEvents } from "../Events";
import { IXlr } from "../XLR";
export interface IRegion {
    complete: boolean;
    containerName: string;
    currMedia: IMedia | undefined;
    currEl: HTMLElement | null;
    currentMedia: number;
    currentMediaIndex: number;
    emitter?: Emitter<DefaultEvents>;
    end(): void;
    ended: boolean;
    ending: boolean;
    exitTransition(): void;
    exitTransitionComplete(): void;
    finished(): void;
    html: HTMLDivElement;
    id: string;
    index: number;
    layout: ILayout;
    mediaObjects: IMedia[];
    mediaObjectsActions: IMedia[];
    nxtMedia: IMedia | undefined;
    nxtEl: HTMLElement | null;
    offsetX: number;
    offsetY: number;
    oldMedia: IMedia | undefined;
    on<E extends keyof IRegionEvents>(event: E, callback: IRegionEvents[E]): Unsubscribe;
    oneMedia: boolean;
    options: {
        [k: string]: any;
    };
    playNextMedia(): void;
    playPreviousMedia(): void;
    prepareMedia(media: IMedia): void;
    prepareMediaObjects(): void;
    prepareRegion(): void;
    ready: boolean;
    regionId: string;
    reset(): void;
    run(): void;
    sHeight: number;
    sWidth: number;
    totalMediaObjects: number;
    transitionNodes(oldMedia: IMedia | undefined, newMedia: IMedia | undefined): void;
    uniqueId: string;
    xml: null | Element;
    zIndex: number;
    prepareNextMedia(): void;
    xlr: IXlr;
}
export declare const initialRegion: IRegion;
