///
import type { Disposable } from '@difizen/mana-common';
import type { Contribution } from '@difizen/mana-syringe';
import type { ModalItem, ModalItemProps } from './modal-protocol';
import { ModalContribution } from './modal-protocol';
export declare class ModalItemView implements Disposable {
modalItem: ModalItem;
modalVisible: boolean;
modalData?: T;
constructor(modalItem: ModalItem);
open: (data: T) => void;
close: () => void;
shouldRender(): boolean;
getModalProps(): ModalItemProps;
disposed: boolean;
dispose(): void;
}
export declare class ModalService {
protected modals: Map>;
modalViewList: ModalItemView[];
protected readonly contributions: Contribution.Provider;
constructor(contributions: Contribution.Provider);
init(): void;
hasModal(modal: ModalItem | string): boolean;
getModal(modal: ModalItem | string): ModalItem | undefined;
registerModal(modal: ModalItem): void;
registerModals(modals: ModalItem[]): void;
unregisterModal(modal: ModalItem): void;
getOrCreateModalView(modal: ModalItem): ModalItemView;
openModal: (modal: {
id: string;
} | string, data?: T | undefined) => void;
closeModal: (modal: {
id: string;
} | string) => void;
closeAllModal: () => void;
getModalProps: (itemView: ModalItemView) => ModalItemProps;
shouldRenderModal: (itemView: ModalItemView) => boolean;
renderModal(itemView: ModalItemView): React.ReactNode;
}
//# sourceMappingURL=modal-service.d.ts.map