import { ReactNode } from 'react';
import { ModelServiceType } from './modal';
export type ModalDataProps = {
    key?: ReactNode;
    triggerClose?: () => void;
    forceOpen?: boolean;
    supportsStacking?: boolean;
};
export type ModalServiceInterface = {
    registerModal: (modalData: ModalDataProps) => void;
    closeAllDropdowns: () => void;
    closeAll: (modalKeysToKeep: Array<ReactNode>) => void;
    clearModal: (key: ReactNode) => void;
    getInstance: () => void;
};
export default class ModalService {
    static instance: ModelServiceType | null;
    private modalStack;
    constructor();
    static getInstance(): ModelServiceType | null;
    registerModal({ key, triggerClose, forceOpen, supportsStacking, }: ModalDataProps): void;
    clearModal(key: ReactNode): void;
    closeAll(modalKeysToKeep?: Array<ReactNode>): void;
    closeAllDropdowns(): void;
}
