import { default as CortexElement } from '../../../../base/src/cortex-element.ts';
import { CxIframeLoading } from '../../../../types/src/iframe';
import { CSSResultGroup } from 'lit';

/**
 * @summary CxIframe - A component for embedding iframes with responsive width and configurable height
 *
 * @cssproperty --height - The height of the iframe
 *
 * @csspart placeholder - The placeholder element when no source URL is provided
 * @csspart iframe - The iframe element when a source URL is provided
 */
export default class CxIframe extends CortexElement {
    static readonly styles: CSSResultGroup;
    static readonly dependencies: {};
    private readonly localize;
    iframe: HTMLIFrameElement;
    /**
     * The source URL for the iframe
     */
    src: string;
    /**
     * Title for accessibility
     */
    iframeTitle: string;
    /**
     * Lazy/eager loading
     */
    iframeLoading: CxIframeLoading;
    /**
     * The 'allow' attribute for the iframe (e.g. "fullscreen; autoplay")
     */
    allow: string;
    /**
     * The 'sandbox' attribute for the iframe (e.g. "allow-scripts allow-same-origin")
     */
    sandbox: string;
    /**
     * The 'referrerpolicy' attribute for the iframe (e.g. "no-referrer")
     */
    referrerPolicy: string;
    /**
     * Whether to allow fullscreen mode
     */
    canFullscreen: boolean;
    /**
     * Whether the iframe is currently loading content
     */
    loading: boolean;
    /**
     * Refreshes the iframe when the fullscreen mode is toggled
     */
    handleCanFullscreenChange(): Promise<void>;
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-iframe': CxIframe;
    }
}
