/** * MainShell - Ink-based REPL replacement * * The main interactive shell for Wiggum CLI, replacing the readline REPL. * Handles slash commands and provides navigation to other screens. * Wrapped in AppShell for consistent layout. */ import React from 'react'; import type { SessionState } from '../../repl/session-state.js'; import type { BackgroundRun } from '../hooks/useBackgroundRuns.js'; /** * Navigation targets for the shell */ export type NavigationTarget = 'shell' | 'interview' | 'init' | 'run' | 'agent'; /** * Navigation props passed to target screens */ export interface NavigationProps { featureName?: string; monitorOnly?: boolean; [key: string]: unknown; } /** * Props for MainShell component */ export interface MainShellProps { /** Pre-built header element from App */ header: React.ReactNode; /** Current session state */ sessionState: SessionState; /** Called when navigating to another screen */ onNavigate: (target: NavigationTarget, props?: NavigationProps) => void; /** Active background runs */ backgroundRuns?: BackgroundRun[]; /** Message to display when the shell first mounts (e.g. from init completion) */ initialMessage?: string; /** File paths to display as dimmed lines below the initial message */ initialFiles?: string[]; } /** * MainShell component * * The main interactive shell that handles slash commands and navigation. * Replaces the readline-based REPL with an Ink-powered TUI. */ export declare function MainShell({ header, sessionState, onNavigate, backgroundRuns, initialMessage, initialFiles, }: MainShellProps): React.ReactElement;