import type { Request } from 'express';
import { AuditSchedulesService } from './services/audit-schedules.service';
import { CreateAuditScheduleDto, CreateAuditRowDto } from './dto/create-audit-schedule.dto';
import { UpdateAuditScheduleDto } from './dto/update-audit-schedule.dto';
import { UpdateAuditRowDto, CancelAuditRowDto, RescheduleAuditRowDto, BulkCancelDto } from './dto/audit-row.dto';
import { ListSchedulesQueryDto } from './dto/list-query.dto';
export declare class AuditSchedulesController {
    private readonly service;
    private readonly logger;
    constructor(service: AuditSchedulesService);
    private getCurrentUserId;
    list(q: ListSchedulesQueryDto, req: Request): Promise<{
        data: {
            row_count: number;
            id: number;
            schedule_date: string;
            title: string;
            client_group: string;
            coordinator_id: number;
            coordinator: import("../user/entities/user.entity").User;
            source_email: string;
            status: import("./entities/audit-schedule.entity").ScheduleStatus;
            notes: string;
            created_by_id: number;
            created_by: import("../user/entities/user.entity").User;
            created_at: Date;
            updated_at: Date;
            rows: import("./entities/audit-schedule-row.entity").AuditScheduleRow[];
        }[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    analytics(): Promise<{
        total_audits: number;
        completed: number;
        pending: number;
        cancelled: number;
        this_week: number;
        completion_rate: number;
    }>;
    byDate(date: string): Promise<import("./entities/audit-schedule.entity").AuditSchedule[]>;
    companyHistory(companyId: number, limit?: string): Promise<import("./entities/audit-schedule-row.entity").AuditScheduleRow[]>;
    findOne(id: number, req: Request): Promise<import("./entities/audit-schedule.entity").AuditSchedule>;
    create(dto: CreateAuditScheduleDto, req: Request): Promise<import("./entities/audit-schedule.entity").AuditSchedule>;
    update(id: number, dto: UpdateAuditScheduleDto, req: Request): Promise<import("./entities/audit-schedule.entity").AuditSchedule>;
    remove(id: number, req: Request): Promise<{
        message: string;
        id: number;
    }>;
    bulkCancel(id: number, dto: BulkCancelDto, req: Request): Promise<{
        message: string;
        cancelled_count: number;
    }>;
    addRow(scheduleId: number, dto: CreateAuditRowDto, req: Request): Promise<import("./entities/audit-schedule-row.entity").AuditScheduleRow>;
    updateRow(scheduleId: number, rowId: number, dto: UpdateAuditRowDto, req: Request): Promise<import("./entities/audit-schedule-row.entity").AuditScheduleRow>;
    removeRow(scheduleId: number, rowId: number, req: Request): Promise<{
        message: string;
        id: number;
    }>;
    cancelRow(rowId: number, dto: CancelAuditRowDto, req: Request): Promise<import("./entities/audit-schedule-row.entity").AuditScheduleRow>;
    rescheduleRow(rowId: number, dto: RescheduleAuditRowDto, req: Request): Promise<import("./entities/audit-schedule-row.entity").AuditScheduleRow>;
    rowAuditTrail(rowId: number): Promise<import("./entities/audit-status-history.entity").AuditStatusHistory[]>;
}
