/**
 * CcwebTrainAdapter — bridges train-lang's LLMAdapter interface to
 * ccweb's PTY + workflow_data.json infrastructure.
 *
 * Paradigm: writesWorkflowData=true (agent CLI). train-lang composes
 * the [System][Inputs][Task][Outputs] prompt; ccweb appends a
 * writeProtocolHint that tells the LLM to write outputs into
 * `.ccweb/workflow_data.json` at `variables.<name>`, then signal
 * completion via `task_progress.push({...finish:true})`.
 *
 * 详见 ~/Obsidian/Base/cc-web/工作轨重构规划.md §5。
 */
import type { LLMAdapter } from '@tom2012/train-adapter-spec';
import type { WorkflowDataWatcher } from './workflow-data-watcher';
export interface CcwebAdapterDeps {
    projectId: string;
    runId: string;
    /** Inject text into the project's active CLI PTY. */
    injector: (text: string) => Promise<void> | void;
    /** Watcher for `.ccweb/workflow_data.json`. */
    watcher: WorkflowDataWatcher;
    /** Per-run monotonic counter assigning task_progress[] index. */
    nextTaskIndex: () => number;
    /** Optional logger (pino-compatible interface). */
    logger?: {
        debug?: (msg: string, ...args: unknown[]) => void;
        info?: (msg: string, ...args: unknown[]) => void;
        warn?: (msg: string, ...args: unknown[]) => void;
        error?: (msg: string, ...args: unknown[]) => void;
    };
}
/**
 * The writeProtocolHint string injected into train's prompt. ccweb's
 * single authoritative "how to write back" instruction — replaces
 * train's default `stack[<callId>].outputs` hint (which doesn't match
 * ccweb v2 schema).
 */
export declare function buildCcwebWriteProtocolHint(): string;
export declare function createCcwebTrainAdapter(deps: CcwebAdapterDeps): LLMAdapter;
//# sourceMappingURL=ccweb-train-adapter.d.ts.map