import { z } from "zod"; import { createStructuredModel } from "../../shared/agent/model.config.js"; import type { PoolCandidate } from "./discriminator.types.js"; declare const AxisSchema: z.ZodObject<{ questionId: z.ZodString; assignments: z.ZodArray; evidence: z.ZodNullable; }, "strip", z.ZodTypeAny, { evidence: string | null; side: string | null; candidateId: string; }, { evidence: string | null; side: string | null; candidateId: string; }>, "many">; }, "strip", z.ZodTypeAny, { assignments: { evidence: string | null; side: string | null; candidateId: string; }[]; questionId: string; }, { assignments: { evidence: string | null; side: string | null; candidateId: string; }[]; questionId: string; }>; type RawAxis = z.infer; /** Fixed answered axis; deliberately excludes the owner's chosen side. */ export interface PoolDiscriminatorAssignmentAxis { questionId: string; label: string; sides: string[]; } /** One batched assignment call. */ export interface PoolDiscriminatorAssignmentInput { axes: PoolDiscriminatorAssignmentAxis[]; candidates: PoolCandidate[]; } /** Verified assignment. Invalid or explicit unknown classifications use null. */ export interface PoolDiscriminatorCandidateAssignment { candidateId: string; side: string | null; evidence: string | null; } /** One valid returned axis. Missing or malformed axes are omitted entirely. */ export interface PoolDiscriminatorAssignedAxis { questionId: string; assignments: PoolDiscriminatorCandidateAssignment[]; } /** Construction options for {@link PoolDiscriminatorAssigner}. */ export interface PoolDiscriminatorAssignerConfig { modelConfig?: Parameters[3]; } /** Build the classifier prompt without any chosen-side preference. */ export declare function buildAssignmentPrompt(input: PoolDiscriminatorAssignmentInput): string; /** Verify one model-returned axis against fixed IDs, sides, and contexts. */ export declare function verifyAssignedAxis(raw: RawAxis, input: PoolDiscriminatorAssignmentInput): PoolDiscriminatorAssignedAxis | null; /** Stateless one-call newborn candidate classifier. */ export declare class PoolDiscriminatorAssigner { private model; constructor(config?: PoolDiscriminatorAssignerConfig); /** * Classify every candidate against every fixed axis in one provider call. * Provider failures propagate so the host graph's fail-open seam can retain * the original un-stamped create items. */ assign(input: PoolDiscriminatorAssignmentInput, options?: { signal?: AbortSignal; }): Promise; } export {};