import '@reddit/faceplate-ui/templateRenderingStrategy/clientStrategy.js';
import type { LinkedBundle, Metadata, RenderPostResponse } from '@devvit/protos';
import { UIDimensions } from '@devvit/protos/types/devvit/ui/common/v1alpha/common.js';
import type { Struct } from '@devvit/protos/types/google/protobuf/struct.js';
import type { FaceplateEvent } from '@reddit/faceplate/event-types.js';
import type { PropertyValues } from 'lit';
import { LitElement } from 'lit';
import type { DevvitRealtimeSend, DevvitRealtimeSendEvent, DevvitUIEffect, DevvitUIEffectEvent, DevvitUIError } from './dispatcher/events.js';
import type { UIApp } from './dispatcher/remote-app.js';
export type { DevvitRealtimeSend, DevvitRealtimeSendEvent, DevvitUIEffect, DevvitUIEffectEvent, DevvitUIError, };
import '../blocks/components/devvit-blocks-renderer.js';
import '../blocks/components/devvit-blocks-webview.js';
import { type DevvitClientPerformanceEvent, DevvitClientPerformanceEventName } from './dispatcher/events.js';
declare global {
    interface HTMLElementTagNameMap {
        'devvit-custom-post': DevvitCustomPost;
    }
    interface HTMLElementEventMap {
        'devvit-realtime-send': DevvitRealtimeSendEvent;
        'devvit-ui-effect': DevvitUIEffectEvent;
        'devvit-ui-error': Omit<FaceplateEvent<'devvit-ui-error'>, 'detail'> & {
            detail: DevvitUIError;
        };
        [DevvitClientPerformanceEventName]: DevvitClientPerformanceEvent;
    }
}
/**
 * Blocks program renderer.
 *
 * Assumes the loaded program is a CustomPost & UIEventHandler.
 *
 * The complexity of this class should only be the UI itself and proxying state
 * to devvit-blocks-renderer and Dispatcher. Don't put logic here that you can't
 * unit test.
 *
 * @slot - Loading / unloaded state.
 */
export declare class DevvitCustomPost extends LitElement {
    #private;
    static get styles(): import("lit").CSSResult[];
    /** Probably a wrapper around the remote runtime (compute-go). */
    remoteApp?: UIApp | undefined;
    bundle?: LinkedBundle | undefined;
    localRuntimeCode?: Blob | undefined;
    metadata?: Metadata | undefined;
    postConfig?: Struct['fields'] | undefined;
    postId?: string | undefined;
    runtimeDebugLogging: boolean;
    scheme?: 'dark' | 'light' | undefined;
    useExperimentalBlocks: boolean;
    webviewUrlTemplate: string;
    disableAssetSandbox: boolean;
    renderResponse?: RenderPostResponse | undefined;
    dimensions?: UIDimensions;
    private _blocksRenderer;
    private _rootBlock?;
    constructor();
    connectedCallback(): Promise<void>;
    disconnectedCallback(): void;
    protected render(): import("lit-html").TemplateResult<1>;
    protected willUpdate(props: PropertyValues<this>): Promise<void>;
}
//# sourceMappingURL=devvit-custom-post.d.ts.map