import './layer.css';
import * as React from 'react';
import { ViewController } from './ctr';
import { EventNoticer, Event } from 'somes/event';
import { Options } from './dialog';
import { Activity } from '../isolate/ctr';
export declare class LayerGroup {
    private _IDs;
    private _panel;
    constructor(panel?: HTMLElement);
    get preventCover(): boolean;
    show(D: typeof Layer, opts?: Options, animate?: boolean, delay?: number, act?: Activity): Promise<Layer<{}, {}>>;
    close(id: typeof Layer | string, animate?: boolean): void;
    closeAll(): void;
}
export declare abstract class Layer<P = {}, S = {}> extends ViewController<P, S> {
    fullScreen: boolean;
    readonly onClose: EventNoticer<Event<any, Layer<{}, {}>>>;
    private __show;
    private __close;
    private __activity?;
    private __panel?;
    get preventCover(): boolean;
    get activity(): Activity<{}, {}> | undefined;
    render(): JSX.Element | null;
    private _enableAnimate;
    private _hide;
    show(animate?: boolean, delay?: number): Promise<void>;
    close(animate?: boolean): Promise<void>;
    protected abstract renderBody(): React.ReactNode;
    static get globaLayerGroup(): LayerGroup;
}
