import { LitElement } from "lit";
import { Ref } from "lit/directives/ref.js";
import { Runtime, RuntimeMethods, Syntax, CommandResult, FS } from "@runno/host";
import { EditorElement } from "./editor";
import { ControlsElement } from "./controls";
import { TerminalElement } from "./terminal";
export declare class RunElement extends LitElement implements RuntimeMethods {
    static styles: import("lit").CSSResult;
    runtime: string;
    syntax?: string;
    code?: string;
    editor: boolean;
    controls: boolean;
    editorRef: Ref<EditorElement>;
    controlsRef: Ref<ControlsElement>;
    terminalRef: Ref<TerminalElement>;
    private _running;
    private _provider;
    get running(): Boolean;
    run(): Promise<CommandResult>;
    stop(): void;
    setProgram(syntax: Syntax, runtime: Runtime, code: string): void;
    showControls(): void;
    hideControls(): void;
    showEditor(): void;
    hideEditor(): void;
    setEditorProgram(syntax: Syntax, runtime: Runtime, code: string): void;
    getEditorProgram(): Promise<string>;
    interactiveRunCode(runtime: Runtime, code: string): Promise<CommandResult>;
    interactiveRunFS(runtime: Runtime, entryPath: string, fs: FS): Promise<CommandResult>;
    interactiveUnsafeCommand(command: string, fs: FS): Promise<CommandResult>;
    interactiveStop(): void;
    headlessRunCode(runtime: Runtime, code: string, stdin?: string): Promise<CommandResult>;
    headlessRunFS(runtime: Runtime, entryPath: string, fs: FS, stdin?: string): Promise<CommandResult>;
    headlessUnsafeCommand(command: string, fs: FS, stdin?: string): Promise<CommandResult>;
    connectedCallback(): void;
    firstUpdated(): void;
    render(): import("lit-html").TemplateResult<1>;
}
