import { type EmbedConfiguration, type EmbedType, EmbedUpdateState } from "./embed-configuration"; import { type EmbedCallbackMessageType, type EmbedCallbackPayloadByMessageType } from "./embed-messages"; import type { Environment } from "./environment"; import { type ComputedStyleReader } from "./style-capture"; import { EmbedStyleObserver } from "./style-observer"; import type { Styles } from "./styles"; type MountedEmbed = { element: Element; iframe: HTMLIFrameElement; styleObserver?: EmbedStyleObserver; }; type ResolvedEmbedConfiguration = { element: Element; styles?: Styles; }; type MessageWaitOptions = { signal?: AbortSignal; timeout?: boolean; timeoutError?: Error; }; export declare abstract class BaseEmbed { readonly environment: Environment; readonly sessionToken: string; protected readonly apiUrl: URL; protected readonly mountedEmbeds: Map; protected readonly onUpdate?: (state: EmbedUpdateState) => void; protected readonly computedStyleReader?: ComputedStyleReader; private readonly abortControllersByIframe; private readonly syncStyles; private readonly timeoutMs; protected constructor(environment: Environment, apiUrl: string, sessionToken: string, onUpdate?: (state: EmbedUpdateState) => void, syncStyles?: boolean, timeoutMs?: number, computedStyleReader?: ComputedStyleReader); unmount(): Promise; protected mountIframes(configurations: Map): Promise; protected resolveStyles(configuration: ResolvedEmbedConfiguration, element: Element): Styles | undefined; private attachStyleObserver; protected createStyleObserver(element: Element): EmbedStyleObserver; private resolveMountTarget; private rollbackMounts; private sendStyleUpdate; protected buildIframeUrl(embedType: EmbedType, styles?: Styles): string; protected waitForMessageWithCondition(message: TMessage, embedType: EmbedType, iframe: HTMLIFrameElement, condition?: (data: EmbedCallbackPayloadByMessageType[TMessage]) => boolean, options?: MessageWaitOptions): Promise; } export {};