import { ViewController } from 'tronic-provider'; export interface IframeControllerConfig { enableUrlListening?: boolean; urlMapper?: (parentUrl: string) => string | null; } export declare class IframeController extends ViewController { iframe: HTMLIFrameElement | null; container: HTMLDivElement | null; private isVisible; private isMobile; private config; private urlListener; private lastKnownUrl; private messageListener; private resizeListener; private loadListener; private originalPushState; private originalReplaceState; private isDestroyed; constructor(endpoint: string, parameters: string); /** * Configure iframe controller options after construction * Must be called before the iframe is ready for optimal results */ configure(config: IframeControllerConfig): void; init(): void; private createContainerAndIframe; /** * Add preconnect hint to speed up initial connection to iframe origin */ private addPreconnectHint; private injectBaseStyles; private setupMessageListener; private setupResponsiveListener; private setupUrlListener; private setupHistoryAPIListener; private handleUrlChange; /** * Navigate to a specific route within the iframe * @param route - The route to navigate to */ navigateToRoute(route: string): void; /** * Cleanup URL listeners */ private cleanupUrlListener; private applyContainerStyles; private getLauncherPosition; private formatLauncherPosition; protected _post(data: any): Promise; /** * Show the iframe overlay */ show(): void; /** * Hide the iframe overlay */ hide(): void; /** * Toggle iframe visibility */ toggleVisibility(): void; /** * Check if iframe is currently visible */ isOverlayVisible(): boolean; /** * Check if currently in mobile mode */ isMobileMode(): boolean; /** * @deprecated Use show() instead */ showOverlay(): void; /** * @deprecated Use hide() instead */ hideOverlay(): void; /** * Cleanup all resources and event listeners * Should be called when the component is no longer needed */ destroy(): void; }