/**
 * Protocol validators for all 9 CLEO protocols.
 * Validates manifest entries and outputs against protocol requirements.
 *
 * @task T4499
 * @epic T4498
 */
import { ExitCode } from '@cleocode/contracts';
/** Protocol violation entry. */
export interface ProtocolViolation {
    requirement: string;
    severity: 'error' | 'warning';
    message: string;
    fix: string;
}
/** Protocol validation result. */
export interface ProtocolValidationResult {
    valid: boolean;
    protocol: string;
    violations: ProtocolViolation[];
    score: number;
}
/** Manifest entry structure for validation. */
export interface ManifestEntryInput {
    id?: string;
    file?: string;
    title?: string;
    date?: string;
    status?: string;
    agent_type?: string;
    topics?: string[];
    key_findings?: string[];
    actionable?: boolean;
    needs_followup?: string[];
    linked_tasks?: string[];
    sources?: string[];
}
/** All supported protocol types. */
export declare const PROTOCOL_TYPES: readonly ["research", "consensus", "specification", "decomposition", "implementation", "contribution", "release", "artifact-publish", "provenance"];
export type ProtocolType = (typeof PROTOCOL_TYPES)[number];
/** Map protocol types to exit codes. */
export declare const PROTOCOL_EXIT_CODES: Record<ProtocolType, ExitCode>;
/** @task T4499 */
export declare function validateResearchProtocol(entry: ManifestEntryInput, options?: {
    strict?: boolean;
    hasCodeChanges?: boolean;
}): ProtocolValidationResult;
export interface VotingMatrix {
    options: Array<{
        name: string;
        confidence: number;
        rationale?: string;
    }>;
    threshold?: number;
}
/** @task T4499 */
export declare function validateConsensusProtocol(entry: ManifestEntryInput, votingMatrix?: VotingMatrix): ProtocolValidationResult;
/** @task T4499 */
export declare function validateSpecificationProtocol(entry: ManifestEntryInput, specContent?: string): ProtocolValidationResult;
/** @task T4499 */
export declare function validateDecompositionProtocol(entry: ManifestEntryInput, options?: {
    siblingCount?: number;
    descriptionClarity?: boolean;
    maxSiblings?: number;
    maxDepth?: number;
}): ProtocolValidationResult;
/** @task T4499 */
export declare function validateImplementationProtocol(entry: ManifestEntryInput, options?: {
    hasTaskTags?: boolean;
}): ProtocolValidationResult;
/** @task T4499 */
export declare function validateContributionProtocol(entry: ManifestEntryInput, options?: {
    hasContributionTags?: boolean;
}): ProtocolValidationResult;
/** @task T4499 */
export declare function validateReleaseProtocol(entry: ManifestEntryInput, options?: {
    version?: string;
    hasChangelog?: boolean;
}): ProtocolValidationResult;
/** @task T4499 */
export declare function validateArtifactPublishProtocol(entry: ManifestEntryInput, options?: {
    artifactType?: string;
    buildPassed?: boolean;
}): ProtocolValidationResult;
/** @task T4499 */
export declare function validateProvenanceProtocol(entry: ManifestEntryInput, options?: {
    hasAttestation?: boolean;
    hasSbom?: boolean;
}): ProtocolValidationResult;
/**
 * Validate a manifest entry against a specific protocol.
 * Throws CleoError with appropriate exit code on strict failure.
 * @task T4499
 */
export declare function validateProtocol(protocol: ProtocolType, entry: ManifestEntryInput, options?: Record<string, unknown>, strict?: boolean): ProtocolValidationResult;
//# sourceMappingURL=protocol-validators.d.ts.map