import type { TaskStatus } from '../../shared/types/index.js';
import mongoose from 'mongoose';
export declare const assignmentsService: {
    getById(id: string): Promise<mongoose.Document<unknown, {}, import("../../shared/models/Assignment.model.js").IAssignment, {}, {}> & import("../../shared/models/Assignment.model.js").IAssignment & Required<{
        _id: mongoose.Types.ObjectId;
    }> & {
        __v: number;
    }>;
    getByAgentId(agentId: string, filters?: {
        status?: string;
        fromDate?: Date;
        toDate?: Date;
    }): Promise<(mongoose.FlattenMaps<import("../../shared/models/Assignment.model.js").IAssignment> & Required<{
        _id: mongoose.Types.ObjectId;
    }> & {
        __v: number;
    })[]>;
    getAgentTasksPaginated(agentId: string, filters?: {
        status?: string;
        fromDate?: Date;
        toDate?: Date;
        page?: number;
        limit?: number;
    }): Promise<{
        items: (mongoose.FlattenMaps<import("../../shared/models/Assignment.model.js").IAssignment> & Required<{
            _id: mongoose.Types.ObjectId;
        }> & {
            __v: number;
        })[];
        total: number;
        page: number;
        limit: number;
    }>;
    getByScheduleId(scheduleId: string): Promise<(mongoose.FlattenMaps<import("../../shared/models/Assignment.model.js").IAssignment> & Required<{
        _id: mongoose.Types.ObjectId;
    }> & {
        __v: number;
    })[]>;
    getEligibleAgentIdsForSchedule(scheduleId: string): Promise<string[]>;
    list(filters: {
        leadId?: string;
        agentId?: string;
        scheduleId?: string;
        status?: string;
        search?: string;
        isActive?: boolean;
        page?: number;
        limit?: number;
    }): Promise<{
        items: any;
        total: any;
        page: number;
        limit: number;
    }>;
    create(data: {
        leadId: string;
        scheduleId: string;
        agentId: string;
        notes?: string;
    }, assignedBy: string): Promise<(mongoose.Document<unknown, {}, import("../../shared/models/Assignment.model.js").IAssignment, {}, {}> & import("../../shared/models/Assignment.model.js").IAssignment & Required<{
        _id: mongoose.Types.ObjectId;
    }> & {
        __v: number;
    }) | null>;
    updateStatus(id: string, status: TaskStatus, actorId: string, options?: {
        isAdmin?: boolean;
        actorUserId?: string;
        reason?: string;
        notes?: string;
        completionImages?: string[];
    }): Promise<(mongoose.Document<unknown, {}, import("../../shared/models/Assignment.model.js").IAssignment, {}, {}> & import("../../shared/models/Assignment.model.js").IAssignment & Required<{
        _id: mongoose.Types.ObjectId;
    }> & {
        __v: number;
    }) | null>;
    delete(id: string, actorId: string): Promise<{
        deleted: boolean;
    }>;
};
//# sourceMappingURL=assignments.service.d.ts.map