export declare const RECOMMENDATION_POLICY_VERSION: "recommendations.v1"; export declare const RECOMMENDATION_CODES: readonly ["INTAKE_INCOMPLETE", "VERIFY_AFTER_MUTATION", "SIDE_EFFECT_OUTCOME_UNKNOWN", "UNRESOLVED_FAILURE", "COVERAGE_INCOMPLETE", "CONTEXT_STALE", "CONTRADICTORY_MEMORY", "PROMOTION_CANDIDATE"]; export type RecommendationCode = (typeof RECOMMENDATION_CODES)[number]; export declare const RECOMMENDATION_PRIORITY: Readonly>; export declare const MAX_RECOMMENDATIONS: 8; export declare const MAX_EVIDENCE_EVENT_IDS = 16; export declare const MAX_REFERENCE_IDS = 16; export declare const MAX_INPUT_ITEMS = 4096; export declare const RECOMMENDATION_MESSAGES: Readonly>; declare const COVERAGE_CATEGORIES: readonly ["approval", "command", "file", "run", "tool"]; declare const COVERAGE_LEVELS: readonly ["complete", "best_effort", "declared", "unavailable"]; declare const MISSING_PROFILE_FIELDS: readonly ["taskType", "target", "expected"]; declare const EVIDENCE_STATES: readonly ["none", "failed", "fresh", "stale"]; declare const TASK_TYPES: readonly ["build", "debug", "research", "review", "devops", "writing", "analysis"]; type CoverageCategory = (typeof COVERAGE_CATEGORIES)[number]; type CoverageLevel = (typeof COVERAGE_LEVELS)[number]; type MissingProfileField = (typeof MISSING_PROFILE_FIELDS)[number]; type EvidenceState = (typeof EVIDENCE_STATES)[number]; export interface RecommendationMetadata { truncated: boolean; referenceIds: string[]; incompleteCoverageCategories?: CoverageCategory[]; } export interface Recommendation { code: RecommendationCode; message: string; evidenceEventIds: string[]; priority: number; untrusted: true; actionable: false; metadata: RecommendationMetadata; } export interface RecommendationProjectionInput { intakeIncomplete: boolean; missingProfileFields: MissingProfileField[]; evidenceState: EvidenceState; unresolvedFailureEventIds: string[]; unknownOutcomeEventIds: string[]; coverage: 'complete' | 'partial'; declaredCoverage?: Partial>; incompleteCoverageCategories?: CoverageCategory[]; latestMutationEventIds?: string[]; latestPassingVerificationEventIds?: string[]; throughSequence?: number; latestMutationSequence?: number | null; latestPassingVerificationSequence?: number | null; profileHash?: string; taskProfile?: { taskType: (typeof TASK_TYPES)[number] | null; target: string | null; expected: string | null; constraints: string | null; }; } export interface RecommendationStaleDeliveredEntryInput { entryId: string; deliveredRevision: number; currentRevision: number; stale?: boolean; evidenceEventIds?: string[]; } export interface RecommendationContradictionPairInput { leftEntryId: string; rightEntryId: string; verified: boolean; evidenceEventIds?: string[]; } export interface RecommendationPromotionCandidateInput { eventId: string; eligible: boolean; evidenceEventIds?: string[]; } export interface RecommendationBrokerInput { staleDeliveredEntries?: RecommendationStaleDeliveredEntryInput[]; contradictoryMemoryPairs?: RecommendationContradictionPairInput[]; promotionCandidates?: RecommendationPromotionCandidateInput[]; } export declare function buildRecommendations(input: unknown): Recommendation[]; export {}; //# sourceMappingURL=recommendations.d.ts.map