import type { FramebusSubscriberArg, FramebusOnHandler, FramebusReplyHandler } from "./lib"; type VerifyDomainMethod = (domain: string) => boolean; type IFrameOrWindowList = Array; type FramebusOptions = { channel?: string; origin?: string; verifyDomain?: VerifyDomainMethod; targetFrames?: IFrameOrWindowList; }; export declare class Framebus { origin: string; channel: string; targetFrames: IFrameOrWindowList; private verifyDomain?; private isDestroyed; private listeners; private hasAdditionalChecksForOnListeners; private limitBroadcastToFramesArray; constructor(options?: FramebusOptions); static Promise: PromiseConstructor; static setPromise(PromiseGlobal: (typeof Framebus)["Promise"]): void; static target(options?: FramebusOptions): Framebus; addTargetFrame(frame: Window | HTMLIFrameElement): void; include(childWindow: Window): boolean; target(options?: FramebusOptions): Framebus; emit(eventName: string, data?: FramebusSubscriberArg | FramebusReplyHandler, reply?: FramebusReplyHandler): boolean; emitAsPromise(eventName: string, data?: FramebusSubscriberArg): Promise; on(eventName: string, originalHandler: FramebusOnHandler): boolean; off(eventName: string, originalHandler: FramebusOnHandler): boolean; teardown(): void; private passesVerifyDomainCheck; private targetFramesAsWindows; private hasMatchingTargetFrame; private checkOrigin; private namespaceEvent; } export {};