import type { Usage } from '../../../../execution/Usage';
import type { NormalizedPromptRunnerSelectionCliOptions } from '../../common/promptRunnerCliOptions';
/**
 * Parameters for one tool-restricted inference. Repository reads and PRD writes are host operations.
 * @private internal type of `coder plan`
 */
export type PlanningHarnessOptions = NormalizedPromptRunnerSelectionCliOptions & {
    readonly workspacePath: string;
    readonly prompt: string;
    readonly signal: AbortSignal;
    /** Reports available usage from this inference once, including turns whose final answer is malformed. */
    readonly onUsage?: (usage: Usage) => void;
};
/**
 * Rejects harnesses without a planning execution policy before any Git sync or process launch.
 * @private internal utility of `coder plan`
 */
export declare function assertPlanningHarnessSupported(harness: string | undefined): void;
/**
 * Constructs a fail-closed Codex invocation. User config, rules, project config discovery, native shell,
 * connectors, hooks and delegation cannot expand the planning tool set. Read-only sandboxing also denies patches.
 * Older Codex versions that do not support these switches fail instead of using the implementation runner.
 * @private internal utility of `coder plan`
 */
export declare function buildPlanningHarnessArguments(options: PlanningHarnessOptions): string[];
/**
 * Runs a bounded inference with no shell interpolation and consumes only its final JSON answer.
 * @private internal utility of `coder plan`
 */
export declare function runPlanningHarness(options: PlanningHarnessOptions): Promise<string>;
