import { type WebViewAppMessage } from '@devvit/protos/types/devvit/ui/effects/web_view/v1alpha/post_message.js';
import type { JSONObject, JSONValue } from '@devvit/shared-types/json.js';
import type { PropertyValues } from 'lit';
import { LitElement } from 'lit';
import type { DevvitBlocksElement } from './DevvitBlocksElement.js';
declare global {
    interface HTMLElementTagNameMap {
        'devvit-blocks-web-view': DevvitBlocksWebView;
    }
    interface HTMLElementEventMap {
        'devvit-web-view-message': CustomEvent<JSONValue>;
    }
}
/**
 * Wraps an iframe to capture messages sent from within to be handled by the app rendering the Blocks
 */
export declare class DevvitBlocksWebView extends LitElement implements DevvitBlocksElement {
    #private;
    src: string | undefined;
    devMode: boolean;
    /**
     * Use ui.webView.postMessage()
     * @deprecated
     */
    state: JSONObject | undefined;
    private _originDiffers;
    private _targetOrigin;
    pendingSrc: string | undefined;
    private _iframe;
    static get styles(): import("lit").CSSResult[];
    connectedCallback(): void;
    disconnectedCallback(): void;
    protected getUpdateComplete(): Promise<boolean>;
    protected willUpdate(changedProperties: PropertyValues<this>): void;
    protected updated(_changedProperties: PropertyValues<this>): void;
    reset(): void;
    postMessage(message: WebViewAppMessage): void;
    render(): import("lit-html").TemplateResult<1>;
}
//# sourceMappingURL=devvit-blocks-web-view.d.ts.map