import { ReactNode } from "react"; export type ModalContentType = ReactNode; export type ModalLogoType = "robotical" | "marty" | "cog" | "none"; export type ModalEventTopics = "SetModal" | "CloseModal" | "CloseModalWithoutAnimation" | "UpdateModalProps"; export type ModalStateData = { modalContent?: ModalContentType; modalTitle?: string; closeModalReturnValue?: unknown; modalLogo?: ModalLogoType; newWindowLink?: string; withCloseButton?: boolean; withLogo?: boolean; }; export interface ModalObservable { subscribe(observer: ModalObserver, topics: Array): void; unsubscribe(observer: ModalObserver): void; publish(eventTopic: ModalEventTopics, eventData?: ModalStateData): void; } export interface ModalObserver { notify(eventTopic: ModalEventTopics, eventData?: ModalStateData): void; }