export { Workflow, WorkflowHooks, WorkflowFactory, createAgentWorkflow, } from "./workflow/index.js";
export { createDefaultWorkflow } from "./workflow/default-agent.js";
export { AutoApprovalMode } from "./utils/auto-approval-mode.js";
import type { ApprovalPolicy } from "./approvals.js";
import type { FullAutoErrorMode } from "./utils/auto-approval-mode.js";
import type { WorkflowFactory } from "./workflow/index.js";
export interface HeaderConfig {
    label: string;
    value: string;
}
/**
 * Minimal configuration required for the UI and tools
 * Excludes LLM configuration which is handled by the consumer's workflow
 */
export interface LibraryConfig {
    /** Whether to show desktop notifications */
    notify?: boolean;
    /** Tool-specific configuration */
    tools?: {
        shell?: {
            maxBytes?: number;
            maxLines?: number;
        };
    };
    /** Auto error mode for unsandboxed commands */
    fullAutoErrorMode?: FullAutoErrorMode;
    /** Additional headers to display in the terminal */
    headers?: Array<HeaderConfig> | (() => Array<HeaderConfig>);
    /** Custom status line to display below the header */
    statusLine?: string | (() => string);
}
/**
 * Options for running the CLI with a custom workflow
 */
export interface CliOptions {
    /** User prompt (optional, defaults to command line args if not provided) */
    prompt?: string;
    /**
     * Approval policy for commands (optional, defaults to "suggest")
     * Controls how tool executions are approved in the UI
     */
    approvalPolicy?: ApprovalPolicy;
    /** Additional directories to allow file system access to (optional) */
    additionalWritableRoots?: ReadonlyArray<string>;
    /** Whether to display full subprocess stdout (optional) */
    fullStdout?: boolean;
    /** Paths to images to include with the prompt (optional) */
    imagePaths?: Array<string>;
    /**
     * UI and tool configuration (optional)
     * Does NOT include LLM settings which are handled by workflow
     */
    config?: LibraryConfig;
}
/**
 * Run the CLI with a custom workflow factory
 *
 * The library handles the UI and common tools, while your custom workflow
 * implements the agent logic and LLM interactions.
 *
 * @param workflowFactory The factory function to create your custom workflow
 * @param options Optional configuration for the CLI
 */
export declare function run(workflowFactory: WorkflowFactory, options?: CliOptions): void;
