import type { ExtensionContext, ModelRegistry } from "@earendil-works/pi-coding-agent"; import { type SubagentToolResult } from "./progress.js"; import type { SubagentProfile, SubagentTelemetry, SubagentUsage, ThinkingLevel } from "../types.js"; export interface CodexTokenUsage { inputTokens: number; cachedInputTokens: number; outputTokens: number; reasoningOutputTokens: number; } export declare function estimateCodexCostUsd(model: string | undefined, usage: CodexTokenUsage): number | undefined; export declare function codexUsageToSubagentUsage(model: string | undefined, usage: CodexTokenUsage, modelRegistry?: ModelRegistry): SubagentUsage; export declare function buildCodexArgs({ prompt, profile, thinkingLevel, sessionId, persistSession, outputSchemaPath, }: { prompt: string; profile: SubagentProfile; thinkingLevel: ThinkingLevel | undefined; sessionId?: string; persistSession?: boolean; outputSchemaPath?: string; }): string[]; export declare function parseCodexJsonLine(line: string): Record | undefined; export declare function extractCodexSessionId(event: Record): string | undefined; export declare function extractCodexUsage(event: Record): CodexTokenUsage | undefined; export declare function extractCodexFinalText(event: Record): string | undefined; export declare function extractCodexError(event: Record): string | undefined; export declare function codexActivityFromEvent(event: Record): string | undefined; export declare function spawnCodexSubagent(params: { label: string; prompt: string; profile: SubagentProfile; thinkingLevel: ThinkingLevel | undefined; ctx: ExtensionContext; signal: AbortSignal | undefined; progressEnabled: boolean; onProgress: ((result: SubagentToolResult) => void) | undefined; onUsage: (usage: SubagentUsage, telemetry: SubagentTelemetry) => void; appendInstructions?: string; sessionId?: string; persistSession?: boolean; outputSchema?: unknown; }): Promise;