import { DataSource } from 'typeorm';
import { Inquiry, InquiryStatus, InquiryDocument } from './entities/inquiry.entity';
import { CreateInquiryDto } from './dto/create-inquiry.dto';
import { UpdateInquiryDto } from './dto/update-inquiry.dto';
import { DraftGeneratorService } from './draft-generator.service';
import { InquiryNotificationsService } from '../inquiry-notifications/inquiry-notifications.service';
type SubmitterRow = {
    id: number;
    firstName: string;
    lastName: string;
    email: string;
};
export declare class InquiriesService {
    private readonly dataSource;
    private readonly draftGenerator;
    private readonly inquiryNotificationsService;
    constructor(dataSource: DataSource, draftGenerator: DraftGeneratorService, inquiryNotificationsService: InquiryNotificationsService);
    private userCanViewAll;
    private generateInquiryRef;
    private getNotificationConfig;
    create(dto: CreateInquiryDto): Promise<Inquiry>;
    update(id: number, dto: UpdateInquiryDto): Promise<Inquiry>;
    findAll(options?: {
        page?: number;
        limit?: number;
        status?: string;
        search?: string;
        currentUserId?: number;
        submitted_by_id?: string;
    }): Promise<{
        data: Inquiry[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    findOne(id: number): Promise<Inquiry | null>;
    remove(id: number): Promise<import("typeorm").DeleteResult>;
    generateDraft(id: number): Promise<{
        message: string;
        pdf_path: string;
        docx_path: string;
        status: InquiryStatus;
        draft_generated_at: Date;
    }>;
    getDraftFile(filePath: string): {
        buffer: Buffer;
        fileName: string;
    };
    uploadDocuments(inquiryId: number, files: Express.Multer.File[], types: string[], uploadedBy?: number): Promise<{
        message: string;
        count: number;
        documents: InquiryDocument[];
    }>;
    deleteDocument(inquiryId: number, index: number): Promise<{
        message: string;
        documents: InquiryDocument[];
    }>;
    getPipelineSummary(currentUserId?: number): Promise<Record<string, number>>;
    getSubmittersList(): Promise<SubmitterRow[]>;
}
export {};
