import { AgentCostRepository } from './repositories/agent-cost.repository';
import { AssignAgentsDto, CreateAgentCostDto, UpdateAgentCostDto } from './dto';
import { AgentCostEntity } from '../../entities/agent-cost.entity';
export interface AgentCostView {
    id: string;
    name: string;
    percentage: number;
    is_active: boolean;
    created_at: Date;
    updated_at: Date;
    assigned_agents: Array<{
        id: string;
        name: string;
    }>;
}
export declare class AgentCostService {
    private readonly repo;
    constructor(repo: AgentCostRepository);
    findAll(query?: {
        page?: number;
        limit?: number;
        search?: string;
    }): Promise<{
        items: AgentCostView[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    findAllForLookup(): Promise<{
        id: string;
        name: string;
        percentage: number;
    }[]>;
    findById(id: string): Promise<AgentCostView>;
    listUnassignedAgents(): Promise<{
        id: string;
        name: string;
    }[]>;
    assign(id: string, dto: AssignAgentsDto): Promise<{
        id: string;
        message: string;
    }>;
    unassign(id: string, tripSourceId: string): Promise<{
        id: string;
        message: string;
    }>;
    findActiveById(id: string): Promise<AgentCostEntity | null>;
    create(dto: CreateAgentCostDto): Promise<{
        id: string;
        message: string;
    }>;
    update(id: string, dto: UpdateAgentCostDto): Promise<{
        id: string;
        message: string;
    }>;
    remove(id: string): Promise<{
        message: string;
    }>;
    private assertUnused;
    private toView;
}
