import { EditorElement } from "./editor";
import { TerminalElement } from "./terminal";
import { CommandResult, FS, Runtime, Syntax, RuntimeMethods } from "@runno/host";
import { ControlsElement } from "./controls";
export declare class RunnoProvider implements RuntimeMethods {
    terminal: TerminalElement;
    editor: EditorElement;
    controls?: ControlsElement;
    constructor(terminal: TerminalElement, editor: EditorElement, controls?: ControlsElement);
    writeFS(fs: FS): 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>;
}
