import { Environment } from "./env"; interface PostMessage { channel: string; subject: string; data: unknown; } interface PostMessageLegacy { message: string; data: { [key: string]: string | boolean; }; } interface PostMessageClientConfig { channel: string; environment?: Environment; target?: HTMLIFrameElement; } interface EventHandlers { [key: string]: (data: any) => void; } interface CreateCardTokenPostMessageData { access_token: string; card_holder: string; card_number: string; card_expiry: string; cvv: string; } interface CreatePurchasePostMessageData { access_token: string; amount: number; card_token: string; currency: string; extra?: { [key: string]: boolean | string; }; hash: string; invoice: string; test?: boolean; } declare class PostMessageClient { private channel; private fzEnv; private target; private domain; private messageListener; constructor(config: PostMessageClientConfig); setEventListeners(handlers: EventHandlers, options?: { once?: boolean; }): void; setEventListenersLegacy(handlers: EventHandlers): void; removeEventListeners(): void; send(message: PostMessage | PostMessageLegacy): void; } export { PostMessageClient, }; export type { CreateCardTokenPostMessageData, CreatePurchasePostMessageData, PostMessage, PostMessageLegacy, PostMessageClientConfig };