import { ForageError } from '../../../interfaces'; import { SubmitSuccessResult } from '../../../interfaces/Forage/types'; import UseCase from '../../../interfaces/UseCase/types'; export declare enum IframeEventType { INPUT_HELLO = "input_hello", INPUT_READY = "input_ready", INPUT_CHANGED = "input_changed", SUBMIT_SUCCESS = "submit_success", SUBMIT_FAILURE = "submit_failure" } export interface InputValidationError { message: string; } export interface IframeEvent { type: IframeEventType; usecase: UseCase; frameId: string; payload?: unknown; } export interface InputReadyEvent extends IframeEvent { type: IframeEventType.INPUT_READY; } export interface InputChangeEvent extends IframeEvent { type: IframeEventType.INPUT_CHANGED; payload: { isComplete: boolean; errorMessage: InputValidationError | null; }; } export interface SubmitSuccessEvent extends IframeEvent { type: IframeEventType.SUBMIT_SUCCESS; payload: SubmitSuccessResult; } export interface SubmitFailureEvent extends IframeEvent { type: IframeEventType.SUBMIT_FAILURE; payload: ForageError; } export type FrameMessageHandler = (event: MessageEvent) => void; export type IframeEventCallback = (o: T) => void; export type IframeEventListener = (cb: IframeEventCallback) => FrameMessageHandler;