import type { AgentDecisionContext } from "../agents/agent"; import type { Action, Event, PlayerInfo } from "../protocol/types"; export declare const DECISION_PROTOCOL_VERSION = "aifight.decision.v1"; export interface DecisionProtocolStrategySection { readonly name: "general" | "game"; readonly format: "markdown"; readonly sha256?: string; readonly content?: string; } export interface DecisionProtocolRequest { readonly type: "aifight.decision.request"; readonly protocol_version: typeof DECISION_PROTOCOL_VERSION; readonly request_id: string; readonly agent: { readonly id: string; readonly name: string; }; readonly match: { readonly session_id: string; readonly game?: string; }; readonly turn: { readonly timeout_ms: number; readonly deadline_at?: string; readonly is_reconnect: boolean; readonly retry: boolean; readonly retry_reason?: string; readonly retries_left?: number; }; readonly context: { readonly state: unknown; readonly legal_actions: readonly Action[]; readonly players: readonly PlayerInfo[]; readonly events: readonly Event[]; }; readonly strategy?: readonly DecisionProtocolStrategySection[]; } export interface DecisionProtocolResponse { readonly type?: "aifight.decision.action"; readonly protocol_version?: typeof DECISION_PROTOCOL_VERSION; readonly request_id?: string; readonly action: unknown; readonly summary?: string; readonly metadata?: Record; } export declare class DecisionProtocolResponseError extends Error { readonly name = "DecisionProtocolResponseError"; } export interface BuildDecisionProtocolRequestOptions { readonly requestId?: string; readonly now?: Date; readonly strategy?: readonly DecisionProtocolStrategySection[]; } export declare function buildDecisionProtocolRequest(ctx: AgentDecisionContext, opts?: BuildDecisionProtocolRequestOptions): DecisionProtocolRequest; export declare function readDecisionProtocolAction(response: unknown): unknown;