import type React from 'react';
import { EventEmitter } from 'eventemitter3';
import type { GlobalObject } from '../lib/globalObject.js';
interface StackInfo {
    emitter: EventEmitter;
    mounted: React.Component[];
}
export interface ModalStackSubscription {
    remove: () => void;
}
export declare class ModalStack {
    static add(component: React.Component, onChange: (stack: readonly React.Component[]) => void, globalObject: GlobalObject): ModalStackSubscription;
    static remove(component: React.Component, globalObject: GlobalObject): void;
    static rerender(globalObject: GlobalObject): void;
    /**
     * Determines if stack component is allowed to block background
     */
    static isBlocking(component: React.Component, globalObject: GlobalObject): boolean;
    static getStackInfo(globalObject: GlobalObject): StackInfo;
    private static wantsToBlock;
}
export {};
