type Environment = "production" | "staging" | "development"; type DisplayMode = "modal" | "inline"; type Theme = "light" | "dark"; type Language = "en" | "ru" | "uk" | "pl" | "de" | "es" | "pt" | "fr" | "et" | "kk" | "zh" | "hi" | "tr" | "vi"; interface ChaindocEmbedConfig { publicKey: string; environment?: Environment; debug?: boolean; } interface SignatureFlowOptions { sessionId: string; email?: string; mode?: DisplayMode; container?: HTMLElement | string; theme?: Theme; language?: Language; zIndex?: number; modalWidth?: number; modalHeight?: number; closeOnClickOutside?: boolean; closeOnEscape?: boolean; onReady?: () => void; onSuccess?: (data: SignatureSuccessData) => void; onError?: (error: SignatureErrorData) => void; onCancel?: () => void; onClose?: () => void; onResendOtp?: (data: ResendOtpData) => void; } interface SignatureSuccessData { sessionId: string; documentId: string; signatureId: string; signedAt: string; } interface SignatureErrorData { code: string; message: string; details?: Record; } interface ResendOtpData { email: string; sentAt: string; } type IframeToSdkMessage = { source: "chaindoc-embed"; type: "READY"; } | { source: "chaindoc-embed"; type: "RESIZE"; data: { height: number; }; } | { source: "chaindoc-embed"; type: "SUCCESS"; data: SignatureSuccessData; } | { source: "chaindoc-embed"; type: "ERROR"; data: SignatureErrorData; } | { source: "chaindoc-embed"; type: "CANCEL"; } | { source: "chaindoc-embed"; type: "CLOSED"; } | { source: "chaindoc-embed"; type: "RESEND_OTP"; data: ResendOtpData; } | { source: "chaindoc-embed"; type: "REQUEST_FULLSCREEN"; } | { source: "chaindoc-embed"; type: "EXIT_FULLSCREEN"; }; type SdkToIframeMessage = { source: "chaindoc-embed"; type: "CLOSE"; } | { source: "chaindoc-embed"; type: "THEME_CHANGE"; data: { theme: Theme; }; }; declare class Logger { private debug; constructor(debug: boolean); log(...args: unknown[]): void; warn(...args: unknown[]): void; error(...args: unknown[]): void; } interface InternalConfig { publicKey: string; environment: Environment; debug: boolean; } type InternalEventHandler = () => void; declare class EmbedInstance { private config; private options; private logger; private state; private iframe; private overlay; private modalContainer; private container; private allowedOrigin; private messageListener; private previousOverflow; private isFullscreen; private previousIframeStyle; private internalEventHandlers; constructor(config: InternalConfig, options: SignatureFlowOptions, logger: Logger); private createIframe; private renderModal; private renderInline; private handleMessage; private enterFullscreen; private exitFullscreen; private sendMessage; close(): void; changeTheme(theme: Theme): void; isReady(): boolean; getSessionId(): string; _internalOn(event: string, handler: InternalEventHandler): void; private emit; private cleanup; } declare class ChaindocEmbed { private config; private logger; private instances; constructor(config: ChaindocEmbedConfig); openSignatureFlow(options: SignatureFlowOptions): EmbedInstance; destroy(): void; static get version(): string; } export { ChaindocEmbed, type ChaindocEmbedConfig, type DisplayMode, EmbedInstance, type Environment, type IframeToSdkMessage, type Language, type ResendOtpData, type SdkToIframeMessage, type SignatureErrorData, type SignatureFlowOptions, type SignatureSuccessData, type Theme };