import { JSONSchema7 } from 'json-schema';
import { ValidationResult } from './types.js';
/**
 * Schema validation utility using Ajv
 */
export declare class SchemaValidator {
    private ajv;
    constructor();
    /**
     * Validate data against a JSON schema
     */
    validate(schema: JSONSchema7, data: any): ValidationResult;
    /**
     * Validate and return cleaned data
     */
    validateAndClean<T>(schema: JSONSchema7, data: any): {
        valid: boolean;
        data?: T;
        errors?: ValidationResult['errors'];
    };
    /**
     * Create a validation function for a specific schema
     */
    createValidator(schema: JSONSchema7): (data: any) => ValidationResult;
    /**
     * Add custom format validators
     */
    private addCustomFormats;
}
export declare function getValidator(): SchemaValidator;
/**
 * Common schema definitions for reuse
 */
export declare const CommonSchemas: {
    id: {
        type: "string";
        minLength: number;
        maxLength: number;
        pattern: string;
    };
    projectId: {
        type: "string";
        minLength: number;
        maxLength: number;
        description: string;
    };
    timestamp: {
        type: "integer";
        format: "unix-timestamp";
        description: string;
    };
    priority: {
        type: "string";
        format: "priority";
        default: string;
        description: string;
    };
    tags: {
        type: "array";
        items: {
            type: "string";
            minLength: number;
            maxLength: number;
        };
        default: any[];
        description: string;
    };
    storyPoints: {
        type: "integer";
        format: "story-points";
        default: number;
        description: string;
    };
    status: {
        story: {
            type: "string";
            format: "story-status";
            default: string;
            description: string;
        };
        sprint: {
            type: "string";
            format: "sprint-status";
            default: string;
            description: string;
        };
        approval: {
            type: "string";
            format: "approval-status";
            default: string;
            description: string;
        };
    };
    documentation: {
        url: {
            type: "string";
            format: "uri";
            description: string;
        };
        status: {
            type: "string";
            format: "doc-status";
            default: string;
            description: string;
        };
    };
};
/**
 * Utility function to create error responses
 */
export declare function createValidationError(errors: ValidationResult['errors']): {
    code: string;
    message: string;
    details: Record<string, any>;
    suggestions: string[];
    recoverable: boolean;
    category: 'validation';
};
//# sourceMappingURL=validation.d.ts.map