/**
 * RunCode ink-based terminal UI.
 * Real-time streaming, thinking animation, tool progress, slash commands.
 */
import type { StreamEvent } from '../agent/types.js';
export interface InkUIHandle {
    handleEvent: (event: StreamEvent) => void;
    updateModel: (model: string) => void;
    updateBalance: (balance: string) => void;
    onTurnDone: (cb: () => void) => void;
    waitForInput: () => Promise<string | null>;
    onAbort: (cb: () => void) => void;
    cleanup: () => void;
    requestPermission: (toolName: string, description: string) => Promise<'yes' | 'no' | 'always'>;
    requestAskUser: (question: string, options?: string[]) => Promise<string>;
}
export declare function launchInkUI(opts: {
    model: string;
    workDir: string;
    version: string;
    walletAddress?: string;
    walletBalance?: string;
    initialTranscript?: Array<{
        role: 'user' | 'assistant';
        text: string;
    }>;
    chain?: string;
    showPicker?: boolean;
    onModelChange?: (model: string, reason?: 'user' | 'system') => void;
}): InkUIHandle;
