import { ReactNode } from "react"; export type ModalContentType = ReactNode; export type ModalEventTopics = "SetModal" | "CloseModal" | "UpdateModalProps"; export type ModalStateData = { modalContent?: ModalContentType; modalTitle?: string; 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; }