/**
 * @fileoverview Type definitions for the structured code review schema.
 *
 * This module defines the TypeScript interfaces and Zod schemas for the structured code review schema
 * used in interactive mode. The schema is designed to be both human-readable and
 * machine-parseable, making it easy for AI tools to process and act on the review results.
 */
import { z } from 'zod';
/**
 * Priority level for code review issues
 */
export declare enum IssuePriority {
    HIGH = "HIGH",
    MEDIUM = "MEDIUM",
    LOW = "LOW"
}
export declare const issuePrioritySchema: z.ZodNativeEnum<typeof IssuePriority>;
/**
 * Location of an issue in the code
 */
export interface IssueLocation {
    startLine: number;
    endLine: number;
}
export declare const issueLocationSchema: z.ZodObject<{
    startLine: z.ZodNumber;
    endLine: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    startLine: number;
    endLine: number;
}, {
    startLine: number;
    endLine: number;
}>;
/**
 * A single issue identified in the code review
 */
export interface ReviewIssue {
    id: string;
    priority: IssuePriority;
    description: string;
    location: IssueLocation;
    currentCode: string;
    suggestedCode: string;
    explanation: string;
}
export declare const reviewIssueSchema: z.ZodObject<{
    id: z.ZodString;
    priority: z.ZodNativeEnum<typeof IssuePriority>;
    description: z.ZodString;
    location: z.ZodObject<{
        startLine: z.ZodNumber;
        endLine: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        startLine: number;
        endLine: number;
    }, {
        startLine: number;
        endLine: number;
    }>;
    currentCode: z.ZodString;
    suggestedCode: z.ZodString;
    explanation: z.ZodString;
}, "strip", z.ZodTypeAny, {
    description: string;
    id: string;
    priority: IssuePriority;
    location: {
        startLine: number;
        endLine: number;
    };
    currentCode: string;
    suggestedCode: string;
    explanation: string;
}, {
    description: string;
    id: string;
    priority: IssuePriority;
    location: {
        startLine: number;
        endLine: number;
    };
    currentCode: string;
    suggestedCode: string;
    explanation: string;
}>;
/**
 * Review results for a single file
 */
export interface FileReview {
    filePath: string;
    issues: ReviewIssue[];
}
export declare const fileReviewSchema: z.ZodObject<{
    filePath: z.ZodString;
    issues: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        priority: z.ZodNativeEnum<typeof IssuePriority>;
        description: z.ZodString;
        location: z.ZodObject<{
            startLine: z.ZodNumber;
            endLine: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            startLine: number;
            endLine: number;
        }, {
            startLine: number;
            endLine: number;
        }>;
        currentCode: z.ZodString;
        suggestedCode: z.ZodString;
        explanation: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        description: string;
        id: string;
        priority: IssuePriority;
        location: {
            startLine: number;
            endLine: number;
        };
        currentCode: string;
        suggestedCode: string;
        explanation: string;
    }, {
        description: string;
        id: string;
        priority: IssuePriority;
        location: {
            startLine: number;
            endLine: number;
        };
        currentCode: string;
        suggestedCode: string;
        explanation: string;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    issues: {
        description: string;
        id: string;
        priority: IssuePriority;
        location: {
            startLine: number;
            endLine: number;
        };
        currentCode: string;
        suggestedCode: string;
        explanation: string;
    }[];
    filePath: string;
}, {
    issues: {
        description: string;
        id: string;
        priority: IssuePriority;
        location: {
            startLine: number;
            endLine: number;
        };
        currentCode: string;
        suggestedCode: string;
        explanation: string;
    }[];
    filePath: string;
}>;
/**
 * Summary statistics for the code review
 */
export interface ReviewSummary {
    highPriorityIssues: number;
    mediumPriorityIssues: number;
    lowPriorityIssues: number;
    totalIssues: number;
}
export declare const reviewSummarySchema: z.ZodObject<{
    highPriorityIssues: z.ZodNumber;
    mediumPriorityIssues: z.ZodNumber;
    lowPriorityIssues: z.ZodNumber;
    totalIssues: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    highPriorityIssues: number;
    mediumPriorityIssues: number;
    lowPriorityIssues: number;
    totalIssues: number;
}, {
    highPriorityIssues: number;
    mediumPriorityIssues: number;
    lowPriorityIssues: number;
    totalIssues: number;
}>;
/**
 * Complete code review results
 */
export interface CodeReview {
    version: string;
    timestamp: string;
    files: FileReview[];
    summary: ReviewSummary;
}
export declare const codeReviewSchema: z.ZodObject<{
    version: z.ZodString;
    timestamp: z.ZodString;
    files: z.ZodArray<z.ZodObject<{
        filePath: z.ZodString;
        issues: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            priority: z.ZodNativeEnum<typeof IssuePriority>;
            description: z.ZodString;
            location: z.ZodObject<{
                startLine: z.ZodNumber;
                endLine: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                startLine: number;
                endLine: number;
            }, {
                startLine: number;
                endLine: number;
            }>;
            currentCode: z.ZodString;
            suggestedCode: z.ZodString;
            explanation: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            description: string;
            id: string;
            priority: IssuePriority;
            location: {
                startLine: number;
                endLine: number;
            };
            currentCode: string;
            suggestedCode: string;
            explanation: string;
        }, {
            description: string;
            id: string;
            priority: IssuePriority;
            location: {
                startLine: number;
                endLine: number;
            };
            currentCode: string;
            suggestedCode: string;
            explanation: string;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        issues: {
            description: string;
            id: string;
            priority: IssuePriority;
            location: {
                startLine: number;
                endLine: number;
            };
            currentCode: string;
            suggestedCode: string;
            explanation: string;
        }[];
        filePath: string;
    }, {
        issues: {
            description: string;
            id: string;
            priority: IssuePriority;
            location: {
                startLine: number;
                endLine: number;
            };
            currentCode: string;
            suggestedCode: string;
            explanation: string;
        }[];
        filePath: string;
    }>, "many">;
    summary: z.ZodObject<{
        highPriorityIssues: z.ZodNumber;
        mediumPriorityIssues: z.ZodNumber;
        lowPriorityIssues: z.ZodNumber;
        totalIssues: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        highPriorityIssues: number;
        mediumPriorityIssues: number;
        lowPriorityIssues: number;
        totalIssues: number;
    }, {
        highPriorityIssues: number;
        mediumPriorityIssues: number;
        lowPriorityIssues: number;
        totalIssues: number;
    }>;
}, "strip", z.ZodTypeAny, {
    version: string;
    timestamp: string;
    files: {
        issues: {
            description: string;
            id: string;
            priority: IssuePriority;
            location: {
                startLine: number;
                endLine: number;
            };
            currentCode: string;
            suggestedCode: string;
            explanation: string;
        }[];
        filePath: string;
    }[];
    summary: {
        highPriorityIssues: number;
        mediumPriorityIssues: number;
        lowPriorityIssues: number;
        totalIssues: number;
    };
}, {
    version: string;
    timestamp: string;
    files: {
        issues: {
            description: string;
            id: string;
            priority: IssuePriority;
            location: {
                startLine: number;
                endLine: number;
            };
            currentCode: string;
            suggestedCode: string;
            explanation: string;
        }[];
        filePath: string;
    }[];
    summary: {
        highPriorityIssues: number;
        mediumPriorityIssues: number;
        lowPriorityIssues: number;
        totalIssues: number;
    };
}>;
/**
 * Root object for the code review schema
 */
export interface ReviewSchema {
    review: CodeReview;
}
export declare const reviewSchema: z.ZodObject<{
    review: z.ZodObject<{
        version: z.ZodString;
        timestamp: z.ZodString;
        files: z.ZodArray<z.ZodObject<{
            filePath: z.ZodString;
            issues: z.ZodArray<z.ZodObject<{
                id: z.ZodString;
                priority: z.ZodNativeEnum<typeof IssuePriority>;
                description: z.ZodString;
                location: z.ZodObject<{
                    startLine: z.ZodNumber;
                    endLine: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    startLine: number;
                    endLine: number;
                }, {
                    startLine: number;
                    endLine: number;
                }>;
                currentCode: z.ZodString;
                suggestedCode: z.ZodString;
                explanation: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                description: string;
                id: string;
                priority: IssuePriority;
                location: {
                    startLine: number;
                    endLine: number;
                };
                currentCode: string;
                suggestedCode: string;
                explanation: string;
            }, {
                description: string;
                id: string;
                priority: IssuePriority;
                location: {
                    startLine: number;
                    endLine: number;
                };
                currentCode: string;
                suggestedCode: string;
                explanation: string;
            }>, "many">;
        }, "strip", z.ZodTypeAny, {
            issues: {
                description: string;
                id: string;
                priority: IssuePriority;
                location: {
                    startLine: number;
                    endLine: number;
                };
                currentCode: string;
                suggestedCode: string;
                explanation: string;
            }[];
            filePath: string;
        }, {
            issues: {
                description: string;
                id: string;
                priority: IssuePriority;
                location: {
                    startLine: number;
                    endLine: number;
                };
                currentCode: string;
                suggestedCode: string;
                explanation: string;
            }[];
            filePath: string;
        }>, "many">;
        summary: z.ZodObject<{
            highPriorityIssues: z.ZodNumber;
            mediumPriorityIssues: z.ZodNumber;
            lowPriorityIssues: z.ZodNumber;
            totalIssues: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            highPriorityIssues: number;
            mediumPriorityIssues: number;
            lowPriorityIssues: number;
            totalIssues: number;
        }, {
            highPriorityIssues: number;
            mediumPriorityIssues: number;
            lowPriorityIssues: number;
            totalIssues: number;
        }>;
    }, "strip", z.ZodTypeAny, {
        version: string;
        timestamp: string;
        files: {
            issues: {
                description: string;
                id: string;
                priority: IssuePriority;
                location: {
                    startLine: number;
                    endLine: number;
                };
                currentCode: string;
                suggestedCode: string;
                explanation: string;
            }[];
            filePath: string;
        }[];
        summary: {
            highPriorityIssues: number;
            mediumPriorityIssues: number;
            lowPriorityIssues: number;
            totalIssues: number;
        };
    }, {
        version: string;
        timestamp: string;
        files: {
            issues: {
                description: string;
                id: string;
                priority: IssuePriority;
                location: {
                    startLine: number;
                    endLine: number;
                };
                currentCode: string;
                suggestedCode: string;
                explanation: string;
            }[];
            filePath: string;
        }[];
        summary: {
            highPriorityIssues: number;
            mediumPriorityIssues: number;
            lowPriorityIssues: number;
            totalIssues: number;
        };
    }>;
}, "strip", z.ZodTypeAny, {
    review: {
        version: string;
        timestamp: string;
        files: {
            issues: {
                description: string;
                id: string;
                priority: IssuePriority;
                location: {
                    startLine: number;
                    endLine: number;
                };
                currentCode: string;
                suggestedCode: string;
                explanation: string;
            }[];
            filePath: string;
        }[];
        summary: {
            highPriorityIssues: number;
            mediumPriorityIssues: number;
            lowPriorityIssues: number;
            totalIssues: number;
        };
    };
}, {
    review: {
        version: string;
        timestamp: string;
        files: {
            issues: {
                description: string;
                id: string;
                priority: IssuePriority;
                location: {
                    startLine: number;
                    endLine: number;
                };
                currentCode: string;
                suggestedCode: string;
                explanation: string;
            }[];
            filePath: string;
        }[];
        summary: {
            highPriorityIssues: number;
            mediumPriorityIssues: number;
            lowPriorityIssues: number;
            totalIssues: number;
        };
    };
}>;
/**
 * Get the schema as a string for inclusion in prompts
 */
export declare function getSchemaAsString(): string;
/**
 * Get schema instructions for inclusion in prompts
 */
export declare function getSchemaInstructions(): string;
