import type { ProviderTurnActionPolicy } from "@best-agent/protocol";
import type { ConversationMessage } from "../../provider/provider-conversation.js";
import { type RuntimeObservationDeliverableFailure } from "./deliverable-observation.js";
export type RuntimeObservationCode = "CONTROL_PAYLOAD_LEAK" | "PROMPT_DELIVERABLE_MISSING" | "PROVIDER_NO_ACTION" | "STRUCTURED_ACTION_REQUIRED" | "TEXTUAL_TOOL_CALL" | "FINAL_ANSWER_UNSUPPORTED";
export type TerminalOutputInvalidKind = "textual-tool-call" | "phase-or-plan-payload" | "provider-internal-payload" | "generic-control-payload";
export type TerminalOutputInvalidReasonCode = "runtime-decision-json" | "provider-native-tool-call-json" | "provider-internal-payload" | "structured-control-payload" | "textual-tool-call" | "tool-call-marker";
export type RuntimeObservation = {
    code: RuntimeObservationCode;
    message: string;
    severity: "warning" | "error";
};
export declare function appendRuntimeObservation(messages: ConversationMessage[], observation: RuntimeObservation): ConversationMessage[];
export declare function formatRuntimeObservation(observation: RuntimeObservation): string;
export declare function textualToolCallObservation(input: {
    actionPolicy: ProviderTurnActionPolicy;
    description?: string;
    toolKnown?: boolean;
    toolName?: string;
}): RuntimeObservation;
export declare function structuredActionRequiredObservation(input: {
    actionPolicy: ProviderTurnActionPolicy;
    responseText: string;
}): RuntimeObservation;
export declare function terminalOutputInvalidObservation(input: {
    actionPolicy: ProviderTurnActionPolicy;
    deliverableFailures?: RuntimeObservationDeliverableFailure[];
    invalidKind: TerminalOutputInvalidKind;
    leakedToolKnown?: boolean;
    leakedToolName?: string;
    reasonCode?: TerminalOutputInvalidReasonCode;
    toolNames?: readonly string[];
}): RuntimeObservation;
//# sourceMappingURL=runtime-observation.d.ts.map