import { GenerationResult } from '../modules/documentGenerator/DocumentGenerator.js';
import { ReviewPriority, ReviewerRole, DocumentReview } from '../types/review.js';
export interface DocumentGenerationWithReviewOptions {
    projectId: string;
    projectName: string;
    context: string;
    enableReview: boolean;
    reviewPriority: ReviewPriority;
    requiredRoles?: ReviewerRole[];
    specificReviewers?: string[];
    workflowId?: string;
    autoSubmitForReview: boolean;
    generateAll?: boolean;
    documentKeys?: string[];
    notifyOnCompletion?: boolean;
    notificationRecipients?: string[];
}
export interface DocumentGenerationWithReviewResult {
    generationResult: GenerationResult;
    reviewsCreated: DocumentReview[];
    errors: string[];
    summary: {
        documentsGenerated: number;
        reviewsCreated: number;
        documentsSubmittedForReview: number;
        documentsSkippedReview: number;
    };
}
export declare class DocumentReviewIntegration {
    private reviewService;
    constructor();
    /**
     * Generate documents and automatically create review requests
     */
    generateDocumentsWithReview(options: DocumentGenerationWithReviewOptions): Promise<DocumentGenerationWithReviewResult>;
    /**
     * Create review requests for successfully generated documents
     */
    private createReviewsForGeneratedDocuments;
    /**
     * Extract document information from file path
     */
    private extractDocumentInfo;
    /**
     * Format document name for display
     */
    private formatDocumentName;
    /**
     * Generate unique document ID
     */
    private generateDocumentId;
    /**
     * Determine if a review should be created for a document type
     */
    private shouldCreateReview;
    /**
     * Send completion notifications
     */
    private sendCompletionNotifications;
    /**
     * Get review status for a project's documents
     */
    getProjectReviewStatus(projectId: string): Promise<{
        totalDocuments: number;
        pendingReviews: number;
        completedReviews: number;
        approvedDocuments: number;
        rejectedDocuments: number;
        overallStatus: 'pending' | 'in_progress' | 'completed' | 'mixed';
    }>;
    /**
     * Regenerate document after review feedback
     */
    regenerateDocumentWithFeedback(reviewId: string, documentKey: string, context: string): Promise<{
        success: boolean;
        newReviewId?: string;
        error?: string;
    }>;
    /**
     * Extract feedback context for document regeneration
     */
    private extractFeedbackContext;
    /**
     * Bulk approve documents after successful review
     */
    bulkApproveDocuments(projectId: string, documentIds: string[]): Promise<{
        approved: string[];
        failed: string[];
        errors: string[];
    }>;
}
//# sourceMappingURL=DocumentReviewIntegration.d.ts.map