import type { NativeToolCall, ProviderId, ReasoningArtifact, ReasoningBlock, TokenUsage } from "../../types.js"; import type { FinalTurnPreservation } from "../provider-profile.js"; /** Controls how a compatible route's captured plaintext/details can persist. */ export interface CompatibleReasoningArtifactPolicy { readonly scope: ReasoningArtifact["replay"]["scope"]; readonly persistence: ReasoningArtifact["replay"]["persistence"]; } export declare function compatibleArtifactPolicyFor(preservation: FinalTurnPreservation): CompatibleReasoningArtifactPolicy; export interface OpenAiCompatibleResult { text: string; toolCalls?: NativeToolCall[] | undefined; finishReason?: string | undefined; usage?: TokenUsage | undefined; reasoningBlock?: ReasoningBlock | undefined; reasoningArtifacts?: readonly ReasoningArtifact[] | undefined; api?: string | undefined; } export declare function artifactRaw(value: unknown): ReasoningArtifact["raw"] | undefined; export declare function openAiReasoningText(channel: { reasoning_content?: unknown; reasoning?: unknown; thinking?: unknown; } | undefined): string | undefined; export declare function compatibleReasoningArtifacts(input: { providerId: ProviderId; model: string; baseUrl: string; toolCalls: readonly NativeToolCall[]; policy?: CompatibleReasoningArtifactPolicy | undefined; reasoning?: { text: string; sequence: number; } | undefined; details?: readonly { raw: ReasoningArtifact["raw"]; sequence: number; }[] | undefined; thoughtSignatures?: readonly { raw: string; sequence: number; toolCallIndex?: number | undefined; }[] | undefined; }): readonly ReasoningArtifact[] | undefined; export declare function toCompletionResult(provider: ProviderId, model: string, payload: OpenAiCompatibleResult): import("../../types.js").CompletionResult; export declare function privateReasoningNote(provider: string, requestBody: string, reasoningTokens: number): string;