import { ModalProps } from 'choerodon-ui/pro/lib/modal/Modal';
import { ConfigContextValue } from 'choerodon-ui/lib/config-provider/ConfigContext';
export declare type MousePosition = {
    x: number;
    y: number;
    vw: number;
    vh: number;
};
export interface ModalContainerState {
    modals: ModalProps[];
    mount?: HTMLElement;
}
export declare type DrawerOffsets = {
    'slide-up': number[];
    'slide-right': number[];
    'slide-down': number[];
    'slide-left': number[];
};
export interface IModalContainer {
    context: ConfigContextValue;
    maskHidden: boolean;
    active: boolean;
    drawerOffsets: DrawerOffsets;
    clear(closeByLocationChange?: boolean): any;
    getContainer(): HTMLElement | undefined;
    getOffsetContainer(): HTMLElement | null;
    mergeModals(modals: ModalProps[]): any;
    state: ModalContainerState;
    open(props: ModalProps): any;
    close(props: ModalProps): any;
    update(props: ModalProps): any;
}
export declare type ModalManagerType = {
    containerInstances: IModalContainer[];
    addInstance: (instance: IModalContainer) => void;
    removeInstance: (instance: IModalContainer) => void;
    getKey: () => string;
    clear: (closeByLocationChange?: boolean) => void;
    registerMousePosition: () => void;
    mousePositionEventBound: WeakSet<Document>;
    mousePosition?: MousePosition;
    containerStyles: WeakMap<HTMLElement, {
        overflow: string;
        paddingRight: string;
        position: string;
    }>;
    root?: HTMLElement;
};
declare const ModalManager: ModalManagerType;
export default ModalManager;
