import type { Versions } from "./versions"; import { RECEIVE_INTERNAL_MESSAGE, SEND_INTERNAL_MESSAGE } from "../messages/const"; import { Features } from "./features"; interface VersionsMessage { name: typeof RECEIVE_INTERNAL_MESSAGE.VERSIONS; value: Versions; } interface FeaturesMessage { name: typeof RECEIVE_INTERNAL_MESSAGE.FEATURE_FLAGS; value: Features; } type SetupCompleteValue = { version: string; }; interface SetupCompleteMessage { name: typeof SEND_INTERNAL_MESSAGE.SETUP_COMPLETE; value: SetupCompleteValue; } type CapabilitiesValue = { thirdPartyCookiesEnabled: boolean; }; interface CapabilitiesMessage { name: typeof SEND_INTERNAL_MESSAGE.CAPABILITIES; value: CapabilitiesValue; } type AskInitialisationValue = { origin: string; }; interface AskInitialisationMessage { name: typeof SEND_INTERNAL_MESSAGE.ASK_INITIALISATION; value: AskInitialisationValue; } interface FocusEventMessage { name: typeof SEND_INTERNAL_MESSAGE.FOCUS_EVENT; } export type ReceiveInternalMessage = VersionsMessage | FeaturesMessage; export type SendInternalMessage = SetupCompleteMessage | CapabilitiesMessage | AskInitialisationMessage | FocusEventMessage; export {};