import React from "react";
import type { AgentTodoItem, AgentWorkState, ApprovalRequest, ModelProvider, ModelTelemetry, SessionTelemetry } from "../../core/types.js";
import type { CommandSuggestionItem } from "../components/CommandSuggestions.js";
import type { OllamaHostDetails } from "../hosts.js";
import type { AgentMode, LogLine } from "../types.js";
import { type Artifact } from "./attachments.js";
export type ExperimentalShellProps = {
    provider: ModelProvider;
    model: string;
    workspace: string;
    sessionId: string;
    agentMode: AgentMode;
    allowWrite: boolean;
    allowShell: boolean;
    subagents: boolean;
    workState: AgentWorkState;
    status: string;
    isRunning: boolean;
    ultramaxxRun: boolean;
    telemetry: ModelTelemetry | null;
    sessionTelemetry: SessionTelemetry;
    draftTokens: number;
    lines: LogLine[];
    todos: AgentTodoItem[];
    todoFrame: number;
    pendingApproval: ApprovalRequest | null;
    bypassConfirmation: boolean;
    updatePrompt: {
        currentVersion: string;
        latestVersion: string;
        source: "npm" | "github";
        command: string;
    } | null;
    updateBusy: boolean;
    reauthActive: boolean;
    reauthBusy: boolean;
    transcriptScrollOffset: number;
    input: string;
    paletteItems: CommandSuggestionItem[];
    paletteIndex: number;
    rows: number;
    columns: number;
    activeHost: OllamaHostDetails | null;
    artifacts: Artifact[];
    onChange: (value: string) => void;
    onSubmit: (value: string) => void;
    onAttach: (path: string) => string;
};
/**
 * Fullscreen experimental shell — a Claude-Code / Codex-CLI flavoured layout:
 * compact header, scrolling transcript, a first-class todo dock, prominent
 * approvals, a categorized command palette, and a bottom-pinned composer.
 *
 * Purely presentational. Keyboard routing (palette navigation, approval keys,
 * scrolling, mode toggle) stays in App's central useInput; only the composer
 * owns its own typing input.
 */
export declare function ExperimentalShell(props: ExperimentalShellProps): React.ReactElement;
