import { z } from 'zod';
import { type ApiSuccess } from '../../../types/api/success';
import { type Explore } from '../../../types/explore';
export interface ScorerContext {
    explores: Explore[];
    agentInstructions: string | null;
}
export declare const ScoreSchema: z.ZodNumber;
export declare const RecommendationsSchema: z.ZodArray<z.ZodString, "many">;
export declare const BaseScorerSchema: z.ZodObject<{
    score: z.ZodNumber;
    recommendations: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    score: number;
    recommendations: string[];
}, {
    score: number;
    recommendations: string[];
}>;
export type BaseScorerEvaluation = z.infer<typeof BaseScorerSchema>;
export interface Scorer<ScoreEvaluationResult extends BaseScorerEvaluation = BaseScorerEvaluation> {
    evaluate(context: ScorerContext): Promise<ScoreEvaluationResult>;
}
export type ReadinessScoreEvaluation = {
    score: number;
    recommendations: string[];
};
export type MetadataCompletenessEvaluation = ReadinessScoreEvaluation;
export type ExploreAnalysisEvaluation = ReadinessScoreEvaluation;
export type InstructionQualityEvaluation = ReadinessScoreEvaluation;
export declare const MetadataCompletenessSchema: z.ZodObject<{
    score: z.ZodNumber;
    recommendations: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    score: number;
    recommendations: string[];
}, {
    score: number;
    recommendations: string[];
}>;
export declare const ExploreAnalysisSchema: z.ZodObject<{
    score: z.ZodNumber;
    recommendations: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    score: number;
    recommendations: string[];
}, {
    score: number;
    recommendations: string[];
}>;
export declare const InstructionQualitySchema: z.ZodObject<{
    score: z.ZodNumber;
    recommendations: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    score: number;
    recommendations: string[];
}, {
    score: number;
    recommendations: string[];
}>;
export interface ReadinessScore {
    overallScore: number;
    metadataCompleteness: MetadataCompletenessEvaluation;
    exploreAnalysis: ExploreAnalysisEvaluation;
    instructionQuality: InstructionQualityEvaluation;
    timestamp: Date;
    projectSnapshot: {
        exploreCount: number;
        fieldCount: number;
    };
}
export type ApiAgentReadinessScoreResponse = ApiSuccess<ReadinessScore>;
//# sourceMappingURL=agentReadiness.d.ts.map