/**
 * Protocol validation common utilities - ported from lib/validation/protocol-validation-common.sh
 *
 * Reusable validation functions for checking output files, manifest fields,
 * return message format, key findings count, status validity, and provenance.
 *
 * @task T4527
 * @epic T4454
 */
export interface ProtocolViolation {
    requirement: string;
    severity: 'error' | 'warning';
    message: string;
    fix?: string;
}
export interface ProtocolValidationResult {
    valid: boolean;
    violations: ProtocolViolation[];
    score: number;
}
/**
 * Check if expected output file exists.
 * @task T4527
 */
export declare function checkOutputFileExists(taskId: string, expectedDir: string, pattern?: string): boolean;
/**
 * Check if file contains required documentation sections.
 * @task T4527
 */
export declare function checkDocumentationSections(filePath: string, sections: string[]): boolean;
/**
 * Check if return message follows protocol format.
 * Expected: "<Type> <status>. See MANIFEST.jsonl for <detail>."
 *
 * When protocolType is provided, the message type must match the protocol
 * (e.g., a 'research' protocol must produce a "Research ..." message).
 *
 * @task T4527
 */
export declare function checkReturnMessageFormat(message: string, protocolType?: string): boolean;
/**
 * Check if manifest entry has a required field (non-null, non-empty).
 * @task T4527
 */
export declare function checkManifestFieldPresent(entry: Record<string, unknown>, fieldName: string): boolean;
/**
 * Check if manifest field has expected type.
 * @task T4527
 */
export declare function checkManifestFieldType(entry: Record<string, unknown>, fieldName: string, expectedType: 'string' | 'array' | 'number' | 'boolean' | 'object'): boolean;
/**
 * Check if key_findings array has valid count (3-7).
 * @task T4527
 */
export declare function checkKeyFindingsCount(entry: Record<string, unknown>): boolean;
/**
 * Check if status is valid enum value.
 * @task T4527
 */
export declare function checkStatusValid(entry: Record<string, unknown>): boolean;
/**
 * Check if agent_type matches expected value.
 * @task T4527
 */
export declare function checkAgentType(entry: Record<string, unknown>, expectedType: string): boolean;
/**
 * Check if linked_tasks array contains required task IDs.
 * @task T4527
 */
export declare function checkLinkedTasksPresent(entry: Record<string, unknown>, requiredIds: string[]): boolean;
/**
 * Check if file contains @task provenance tag.
 * @task T4527
 */
export declare function checkProvenanceTags(filePath: string, taskId?: string): boolean;
/**
 * Validate common manifest requirements across all protocols.
 *
 * When protocolType is provided, additionally validates that the manifest
 * entry's agent_type matches the expected protocol type.
 *
 * @task T4527
 */
export declare function validateCommonManifestRequirements(entry: Record<string, unknown>, protocolType?: string): ProtocolValidationResult;
//# sourceMappingURL=protocol-common.d.ts.map