diff --git a/lib/index.d.ts b/lib/index.d.ts new file mode 100644 index 0000000..a9c587b --- /dev/null +++ b/lib/index.d.ts @@ -0,0 +1,35 @@ +export type MethodName = string +export type Method = ( + ...Args +) => Returning | Promise + +export type Listener = (event: any) => void + +type BidirectionalMessagingOptions = { + addListener?: (eventName: string, handler: Listener) => void + removeListener?: (eventName: string, handler: Listener) => void + getMessageData?: (event: any) => any + postMessage(data: any, targetOrigin?: string): void | Promise + targetOrigin?: string +} + +export type CallerOptions = BidirectionalMessagingOptions +export type ExposeOptions = BidirectionalMessagingOptions & { + isCallback?: boolean +} + +export function caller( + methodName: MethodName, + options: CallerOptions +): (...args: Args) => Promise + +export function call( + methodName: MethodName, + ...args: Args +): Promise + +export function expose( + methodName: MethodName, + method: Method, + options: CallerOptions +): (...args: Args) => Promise