import type { AgentRun, Item, NodeContract, NodePacket, PlanProjection, ThreadEvidenceRecord, ThreadId } from "@best-agent/protocol";
export interface ApprovedExecutionNodePacketInput {
    items: Item[];
    latestRun?: AgentRun;
    nodeContract?: NodeContract;
    plan: PlanProjection;
    recentEvidence: ThreadEvidenceRecord[];
}
export interface PlanModeNodePacketInput {
    items: Item[];
    latestRun?: AgentRun;
    nodeContract?: NodeContract;
    plan: PlanProjection;
    recentEvidence: ThreadEvidenceRecord[];
}
export interface InitialPlanModeNodePacketInput {
    items: Item[];
    latestRun?: AgentRun;
    recentEvidence: ThreadEvidenceRecord[];
    threadId: ThreadId;
}
export interface OrdinaryTurnNodePacketInput {
    activePaths?: string[];
    currentObjective?: string;
    items: Item[];
    latestRun?: AgentRun;
    recentEvidence: ThreadEvidenceRecord[];
    threadId: ThreadId;
}
export declare function selectNodePacketEvidence(evidence: ThreadEvidenceRecord[], preferredEvidenceIds?: string[]): ThreadEvidenceRecord[];
export declare function buildApprovedExecutionNodePacket(input: ApprovedExecutionNodePacketInput): NodePacket;
export declare function buildPlanModeNodePacket(input: PlanModeNodePacketInput): NodePacket;
export declare function buildInitialPlanModeNodePacket(input: InitialPlanModeNodePacketInput): NodePacket;
export declare function buildOrdinaryTurnNodePacket(input: OrdinaryTurnNodePacketInput): NodePacket;
export declare function compileNodePacketPrompt(packet: NodePacket, evidence?: ThreadEvidenceRecord[]): string;
export declare function compilePlanModeNodePacketPrompt(packet: NodePacket, plan: PlanProjection | null, evidence?: ThreadEvidenceRecord[]): string;
export declare function compileOrdinaryTurnNodePacketPrompt(packet: NodePacket, evidence?: ThreadEvidenceRecord[]): string;
export declare function createNodePacketPromptCacheKey(packet: NodePacket, evidence?: ThreadEvidenceRecord[]): string;
//# sourceMappingURL=node-packet.d.ts.map