import type { Empty } from '@devvit/protos';
import { LitElement, type CSSResultGroup, type PropertyValues, type TemplateResult } from 'lit';
import '../play-editor/play-editor.js';
import '../play-pen-footer.js';
import '../play-pen-header.js';
import '../play-preview-controls.js';
import '../play-preview.js';
import '../play-toast.js';
declare global {
    interface HTMLElementTagNameMap {
        'play-pen': PlayPen;
    }
}
/**
 * A complete and standalone playground: an editor, a runtime and client, a
 * preview and toolbar. Accepts a slotted template.
 *
 * @slot - Optional template.
 */
export declare class PlayPen extends LitElement {
    #private;
    static readonly styles: CSSResultGroup;
    /**
     * Allow loading and saving from LocalStorage. Do not enable for multiple
     * playgrounds on the same document.
     */
    allowStorage: boolean;
    /**
     * Allow loading and saving from URL hash. Loading from hash has precedence
     * over LocalStorage. Do not enable for multiple playgrounds on the same
     * document.
     */
    allowURL: boolean;
    srcByLabel: Readonly<{
        [key: string]: string;
    }>;
    /** Program executable. */
    private _bundle?;
    /** Execution preview widths. */
    private _diagnostics;
    private _openConsole;
    private _previewWidth;
    private _remoteRuntimeOrigin;
    private _runtimeDebugLogging;
    private _sandboxApp;
    private _useExperimentalBlocks;
    private _useLocalRuntime;
    private _useRemoteRuntime;
    private _useUIRequest;
    private _editor;
    private _toast;
    _uploaded: Promise<Empty>;
    /** Program title. */ private _name;
    /** Execution color scheme. */ private _scheme;
    /** Program source code. Undefined when not restored. */ private _src;
    connectedCallback(): void;
    protected render(): TemplateResult;
    protected willUpdate(props: PropertyValues<this> & PropertyValues<{
        _openConsole: boolean;
        _runtimeDebugLogging: boolean;
        _sandboxApp: boolean;
        _useExperimentalBlocks: boolean;
        _useLocalRuntime: boolean;
        _useRemoteRuntime: boolean;
        _remoteRuntimeOrigin: string;
        _useUIRequest: boolean;
    }>): Promise<void>;
}
