/// <reference types="react" />
import { Syringe } from '@difizen/mana-syringe';
export interface ModalItemProps<T> {
    modalItem: ModalItem<T>;
    data?: T;
    visible: boolean;
    close: () => void;
}
export interface ModalItem<T = any> {
    id: string;
    component: React.FC<ModalItemProps<T>>;
    shouldRender?: (data?: T) => boolean;
    render?: (props: ModalItemProps<T>) => React.ReactNode;
    __data?: T;
}
export declare const ModalContribution: Syringe.DefinedToken;
export interface ModalContribution {
    registerModal?: () => ModalItem<any>;
    registerModals?: () => ModalItem<any>[];
}
export declare function renderModal<T>(componet: React.FC<ModalItemProps<T>>, props: ModalItemProps<any>): React.ReactNode;
//# sourceMappingURL=modal-protocol.d.ts.map