import type { CommandDef, IO, InputDef, InputResultType, InputsSchema } from "../core/types";
import { BaseContext } from "./baseContext";
export interface TerminalOptions {
  /** Pre-supplied values from CLI flags/positional args, keyed by input name */
  cliOptions?: Record<string, unknown>;
  /** Pre-supplied values from --inputs JSON flag */
  jsonInputs?: Record<string, unknown>;
  /** Whether interactive prompts are allowed (default: auto-detect from TTY) */
  interactive?: boolean;
  /** If true, all confirm() calls return true without prompting (--yes flag) */
  yes?: boolean;
}
declare class TerminalContext<TInputs extends InputsSchema> extends BaseContext<TInputs> {
  private options;
  constructor(command: CommandDef<TInputs>, options: TerminalOptions);
  log(message: string): void;
  confirm(message: string): Promise<boolean>;
  protected resolveInput<P extends InputDef>(name: string, spec: P): Promise<InputResultType<P>>;
}
/**
 * Create a CommandContext for terminal usage.
 */
export declare function createTerminalContext<TInputs extends InputsSchema>(command: CommandDef<TInputs>, options?: TerminalOptions): TerminalContext<TInputs>;
/**
 * Create a bare IO instance for terminal helper functions.
 */
export declare function createTerminalIO(options?: TerminalOptions): IO;
export {};