import { Prisma } from '@prisma/client';
import type { SettlementCreateInput, SettlementVoidInput, UnpaidEarningsQueryInput } from '@ali-ismail/contracts';
import { PrismaService } from '../prisma/prisma.service';
import { AuditService } from '../audit/audit.service';
import { NumberingService } from '../numbering/numbering.service';
import { WorkerLedgerService } from './worker-ledger.service';
import { WorkerPostingService } from '../accounting/worker-posting.service';
/**
 * Phase 5.1 worker settlement/payment (WPM-YYYY-#####).
 *
 * - Settles EXACT selected earning/salary ledger rows via child allocations
 *   (unique ledger_entry_id = DB double-settlement guard).
 * - Loan/Advance recovered ONLY by explicit admin amounts; combined
 *   recoveries+deductions may never exceed gross (no silent priority).
 * - Atomic: locks rows, validates balances, numbers, posts PAYMENT /
 *   LOAN_RECOVERY / ADVANCE_RECOVERY / DEDUCTION ledger entries, audits —
 *   or rolls everything back.
 * - Idempotent via DB-unique (organizationId, idempotency_key).
 */
export declare class WorkerSettlementService {
    private readonly prisma;
    private readonly audit;
    private readonly numbering;
    private readonly ledger;
    private readonly workerPosting;
    constructor(prisma: PrismaService, audit: AuditService, numbering: NumberingService, ledger: WorkerLedgerService, workerPosting: WorkerPostingService);
    unpaidEarnings(organizationId: string, workerId: string, query: UnpaidEarningsQueryInput): Promise<{
        items: ({
            completion: ({
                assignment: {
                    order: {
                        id: string;
                        customer: {
                            id: string;
                            name: string;
                        };
                        orderNumber: string | null;
                    };
                } & {
                    id: string;
                    createdAt: Date;
                    organizationId: string;
                    updatedAt: Date;
                    status: import("@prisma/client").$Enums.AssignmentStatus;
                    notes: string | null;
                    workerId: string;
                    workerTypeId: string | null;
                    orderId: string;
                    stage: import("@prisma/client").$Enums.ProductionStage;
                    garmentLineId: string | null;
                    designLineId: string | null;
                    qtyAssigned: Prisma.Decimal;
                    qtyCompleted: Prisma.Decimal;
                    rateItemId: string | null;
                    rateAmount: Prisma.Decimal | null;
                    rateSource: import("@prisma/client").$Enums.AssignmentRateSource;
                    rateOverrideReason: string | null;
                    assignedDate: Date;
                    dueDate: Date | null;
                    reworkReason: string | null;
                    cancelledAt: Date | null;
                    cancelReason: string | null;
                    createdById: string | null;
                };
            } & {
                id: string;
                createdAt: Date;
                organizationId: string;
                notes: string | null;
                workerId: string;
                stage: import("@prisma/client").$Enums.ProductionStage;
                rateAmount: Prisma.Decimal | null;
                createdById: string | null;
                qty: Prisma.Decimal;
                idempotencyKey: string | null;
                assignmentId: string;
                completedAt: Date;
                earningId: string | null;
            }) | null;
        } & {
            id: string;
            createdAt: Date;
            organizationId: string;
            description: string | null;
            reason: string | null;
            workerId: string;
            createdById: string | null;
            amount: Prisma.Decimal;
            sourceType: string | null;
            sourceId: string | null;
            financialAccountId: string | null;
            effectiveDate: Date;
            entryType: import("@prisma/client").$Enums.WorkerLedgerEntryType;
            payrollPeriod: string | null;
            baseSalarySnapshot: Prisma.Decimal | null;
            paymentMethodId: string | null;
            eligibleFrom: Date | null;
            eligibleThrough: Date | null;
            eligibleDays: number | null;
            dailyRate: Prisma.Decimal | null;
            isFullMonth: boolean | null;
            calcSource: string | null;
            reversedEntryId: string | null;
        })[];
        grossTotal: string;
        loanOutstanding: string;
        advanceOutstanding: string;
        unpaidSalaryAccruals: {
            id: string;
            createdAt: Date;
            organizationId: string;
            description: string | null;
            reason: string | null;
            workerId: string;
            createdById: string | null;
            amount: Prisma.Decimal;
            sourceType: string | null;
            sourceId: string | null;
            financialAccountId: string | null;
            effectiveDate: Date;
            entryType: import("@prisma/client").$Enums.WorkerLedgerEntryType;
            payrollPeriod: string | null;
            baseSalarySnapshot: Prisma.Decimal | null;
            paymentMethodId: string | null;
            eligibleFrom: Date | null;
            eligibleThrough: Date | null;
            eligibleDays: number | null;
            dailyRate: Prisma.Decimal | null;
            isFullMonth: boolean | null;
            calcSource: string | null;
            reversedEntryId: string | null;
        }[];
    }>;
    create(organizationId: string, workerId: string, dto: SettlementCreateInput, actorUserId: string): Promise<{
        settlement: {
            worker: {
                id: string;
                name: string;
                workerNumber: string | null;
                compensationMode: import("@prisma/client").$Enums.WorkerCompMode;
                typeLinks: ({
                    workerType: {
                        code: string;
                        name: string;
                    };
                } & {
                    id: string;
                    createdAt: Date;
                    isPrimary: boolean;
                    workerId: string;
                    workerTypeId: string;
                })[];
            };
            paymentMethod: {
                id: string;
                code: string;
                name: string;
            } | null;
            voidedAllocations: ({
                ledgerEntry: {
                    completion: ({
                        assignment: {
                            order: {
                                id: string;
                                customer: {
                                    id: string;
                                    name: string;
                                    customerNumber: string | null;
                                };
                                orderNumber: string | null;
                            };
                        } & {
                            id: string;
                            createdAt: Date;
                            organizationId: string;
                            updatedAt: Date;
                            status: import("@prisma/client").$Enums.AssignmentStatus;
                            notes: string | null;
                            workerId: string;
                            workerTypeId: string | null;
                            orderId: string;
                            stage: import("@prisma/client").$Enums.ProductionStage;
                            garmentLineId: string | null;
                            designLineId: string | null;
                            qtyAssigned: Prisma.Decimal;
                            qtyCompleted: Prisma.Decimal;
                            rateItemId: string | null;
                            rateAmount: Prisma.Decimal | null;
                            rateSource: import("@prisma/client").$Enums.AssignmentRateSource;
                            rateOverrideReason: string | null;
                            assignedDate: Date;
                            dueDate: Date | null;
                            reworkReason: string | null;
                            cancelledAt: Date | null;
                            cancelReason: string | null;
                            createdById: string | null;
                        };
                    } & {
                        id: string;
                        createdAt: Date;
                        organizationId: string;
                        notes: string | null;
                        workerId: string;
                        stage: import("@prisma/client").$Enums.ProductionStage;
                        rateAmount: Prisma.Decimal | null;
                        createdById: string | null;
                        qty: Prisma.Decimal;
                        idempotencyKey: string | null;
                        assignmentId: string;
                        completedAt: Date;
                        earningId: string | null;
                    }) | null;
                } & {
                    id: string;
                    createdAt: Date;
                    organizationId: string;
                    description: string | null;
                    reason: string | null;
                    workerId: string;
                    createdById: string | null;
                    amount: Prisma.Decimal;
                    sourceType: string | null;
                    sourceId: string | null;
                    financialAccountId: string | null;
                    effectiveDate: Date;
                    entryType: import("@prisma/client").$Enums.WorkerLedgerEntryType;
                    payrollPeriod: string | null;
                    baseSalarySnapshot: Prisma.Decimal | null;
                    paymentMethodId: string | null;
                    eligibleFrom: Date | null;
                    eligibleThrough: Date | null;
                    eligibleDays: number | null;
                    dailyRate: Prisma.Decimal | null;
                    isFullMonth: boolean | null;
                    calcSource: string | null;
                    reversedEntryId: string | null;
                };
            } & {
                id: string;
                createdAt: Date;
                organizationId: string;
                amount: Prisma.Decimal;
                settlementId: string;
                ledgerEntryId: string;
                allocatedAt: Date;
            })[];
            allocations: ({
                ledgerEntry: {
                    completion: ({
                        assignment: {
                            order: {
                                id: string;
                                customer: {
                                    id: string;
                                    name: string;
                                    customerNumber: string | null;
                                };
                                orderNumber: string | null;
                            };
                        } & {
                            id: string;
                            createdAt: Date;
                            organizationId: string;
                            updatedAt: Date;
                            status: import("@prisma/client").$Enums.AssignmentStatus;
                            notes: string | null;
                            workerId: string;
                            workerTypeId: string | null;
                            orderId: string;
                            stage: import("@prisma/client").$Enums.ProductionStage;
                            garmentLineId: string | null;
                            designLineId: string | null;
                            qtyAssigned: Prisma.Decimal;
                            qtyCompleted: Prisma.Decimal;
                            rateItemId: string | null;
                            rateAmount: Prisma.Decimal | null;
                            rateSource: import("@prisma/client").$Enums.AssignmentRateSource;
                            rateOverrideReason: string | null;
                            assignedDate: Date;
                            dueDate: Date | null;
                            reworkReason: string | null;
                            cancelledAt: Date | null;
                            cancelReason: string | null;
                            createdById: string | null;
                        };
                    } & {
                        id: string;
                        createdAt: Date;
                        organizationId: string;
                        notes: string | null;
                        workerId: string;
                        stage: import("@prisma/client").$Enums.ProductionStage;
                        rateAmount: Prisma.Decimal | null;
                        createdById: string | null;
                        qty: Prisma.Decimal;
                        idempotencyKey: string | null;
                        assignmentId: string;
                        completedAt: Date;
                        earningId: string | null;
                    }) | null;
                } & {
                    id: string;
                    createdAt: Date;
                    organizationId: string;
                    description: string | null;
                    reason: string | null;
                    workerId: string;
                    createdById: string | null;
                    amount: Prisma.Decimal;
                    sourceType: string | null;
                    sourceId: string | null;
                    financialAccountId: string | null;
                    effectiveDate: Date;
                    entryType: import("@prisma/client").$Enums.WorkerLedgerEntryType;
                    payrollPeriod: string | null;
                    baseSalarySnapshot: Prisma.Decimal | null;
                    paymentMethodId: string | null;
                    eligibleFrom: Date | null;
                    eligibleThrough: Date | null;
                    eligibleDays: number | null;
                    dailyRate: Prisma.Decimal | null;
                    isFullMonth: boolean | null;
                    calcSource: string | null;
                    reversedEntryId: string | null;
                };
            } & {
                id: string;
                createdAt: Date;
                organizationId: string;
                amount: Prisma.Decimal;
                settlementId: string;
                ledgerEntryId: string;
            })[];
        } & {
            id: string;
            createdAt: Date;
            organizationId: string;
            notes: string | null;
            workerId: string;
            createdById: string | null;
            financialAccountId: string | null;
            idempotencyKey: string | null;
            kind: import("@prisma/client").$Enums.WorkerSettlementKind;
            payrollPeriod: string | null;
            paymentMethodId: string | null;
            grossAmount: Prisma.Decimal;
            netAmount: Prisma.Decimal;
            settlementNumber: string;
            fromDate: Date | null;
            toDate: Date | null;
            loanRecovery: Prisma.Decimal;
            advanceRecovery: Prisma.Decimal;
            otherDeductions: Prisma.Decimal;
            paymentDate: Date;
            voidedAt: Date | null;
            voidedById: string | null;
            voidReason: string | null;
        };
        duplicate: boolean;
    }>;
    /**
     * Controlled WPM void:
     * - Receipt row is NEVER deleted; it is marked VOID (voidedAt/by/reason) and
     *   the WPM number stays permanent.
     * - Every ledger posting the settlement made (PAYMENT / LOAN_RECOVERY /
     *   ADVANCE_RECOVERY / DEDUCTION) gets a compensating REVERSAL entry —
     *   originals are never deleted. Reversing the recoveries restores the exact
     *   Loan/Advance outstanding balances (outstanding() ignores reversed rows).
     * - Live allocations are snapshotted to voidedAllocations then removed, so
     *   the exact settled earning/salary rows become eligible again (the unique
     *   ledger_entry_id double-settlement guard is freed).
     * - Once-only: a voided settlement cannot be voided again; repeats are
     *   idempotent (they return the already-voided receipt, no side effects).
     */
    void(organizationId: string, settlementId: string, dto: SettlementVoidInput, actorUserId: string): Promise<{
        settlement: {
            status: "ACTIVE" | "VOID";
            remainingLoan: string;
            remainingAdvance: string;
            worker: {
                id: string;
                name: string;
                workerNumber: string | null;
                compensationMode: import("@prisma/client").$Enums.WorkerCompMode;
                typeLinks: ({
                    workerType: {
                        code: string;
                        name: string;
                    };
                } & {
                    id: string;
                    createdAt: Date;
                    isPrimary: boolean;
                    workerId: string;
                    workerTypeId: string;
                })[];
            };
            paymentMethod: {
                id: string;
                code: string;
                name: string;
            } | null;
            voidedAllocations: ({
                ledgerEntry: {
                    completion: ({
                        assignment: {
                            order: {
                                id: string;
                                customer: {
                                    id: string;
                                    name: string;
                                    customerNumber: string | null;
                                };
                                orderNumber: string | null;
                            };
                        } & {
                            id: string;
                            createdAt: Date;
                            organizationId: string;
                            updatedAt: Date;
                            status: import("@prisma/client").$Enums.AssignmentStatus;
                            notes: string | null;
                            workerId: string;
                            workerTypeId: string | null;
                            orderId: string;
                            stage: import("@prisma/client").$Enums.ProductionStage;
                            garmentLineId: string | null;
                            designLineId: string | null;
                            qtyAssigned: Prisma.Decimal;
                            qtyCompleted: Prisma.Decimal;
                            rateItemId: string | null;
                            rateAmount: Prisma.Decimal | null;
                            rateSource: import("@prisma/client").$Enums.AssignmentRateSource;
                            rateOverrideReason: string | null;
                            assignedDate: Date;
                            dueDate: Date | null;
                            reworkReason: string | null;
                            cancelledAt: Date | null;
                            cancelReason: string | null;
                            createdById: string | null;
                        };
                    } & {
                        id: string;
                        createdAt: Date;
                        organizationId: string;
                        notes: string | null;
                        workerId: string;
                        stage: import("@prisma/client").$Enums.ProductionStage;
                        rateAmount: Prisma.Decimal | null;
                        createdById: string | null;
                        qty: Prisma.Decimal;
                        idempotencyKey: string | null;
                        assignmentId: string;
                        completedAt: Date;
                        earningId: string | null;
                    }) | null;
                } & {
                    id: string;
                    createdAt: Date;
                    organizationId: string;
                    description: string | null;
                    reason: string | null;
                    workerId: string;
                    createdById: string | null;
                    amount: Prisma.Decimal;
                    sourceType: string | null;
                    sourceId: string | null;
                    financialAccountId: string | null;
                    effectiveDate: Date;
                    entryType: import("@prisma/client").$Enums.WorkerLedgerEntryType;
                    payrollPeriod: string | null;
                    baseSalarySnapshot: Prisma.Decimal | null;
                    paymentMethodId: string | null;
                    eligibleFrom: Date | null;
                    eligibleThrough: Date | null;
                    eligibleDays: number | null;
                    dailyRate: Prisma.Decimal | null;
                    isFullMonth: boolean | null;
                    calcSource: string | null;
                    reversedEntryId: string | null;
                };
            } & {
                id: string;
                createdAt: Date;
                organizationId: string;
                amount: Prisma.Decimal;
                settlementId: string;
                ledgerEntryId: string;
                allocatedAt: Date;
            })[];
            allocations: ({
                ledgerEntry: {
                    completion: ({
                        assignment: {
                            order: {
                                id: string;
                                customer: {
                                    id: string;
                                    name: string;
                                    customerNumber: string | null;
                                };
                                orderNumber: string | null;
                            };
                        } & {
                            id: string;
                            createdAt: Date;
                            organizationId: string;
                            updatedAt: Date;
                            status: import("@prisma/client").$Enums.AssignmentStatus;
                            notes: string | null;
                            workerId: string;
                            workerTypeId: string | null;
                            orderId: string;
                            stage: import("@prisma/client").$Enums.ProductionStage;
                            garmentLineId: string | null;
                            designLineId: string | null;
                            qtyAssigned: Prisma.Decimal;
                            qtyCompleted: Prisma.Decimal;
                            rateItemId: string | null;
                            rateAmount: Prisma.Decimal | null;
                            rateSource: import("@prisma/client").$Enums.AssignmentRateSource;
                            rateOverrideReason: string | null;
                            assignedDate: Date;
                            dueDate: Date | null;
                            reworkReason: string | null;
                            cancelledAt: Date | null;
                            cancelReason: string | null;
                            createdById: string | null;
                        };
                    } & {
                        id: string;
                        createdAt: Date;
                        organizationId: string;
                        notes: string | null;
                        workerId: string;
                        stage: import("@prisma/client").$Enums.ProductionStage;
                        rateAmount: Prisma.Decimal | null;
                        createdById: string | null;
                        qty: Prisma.Decimal;
                        idempotencyKey: string | null;
                        assignmentId: string;
                        completedAt: Date;
                        earningId: string | null;
                    }) | null;
                } & {
                    id: string;
                    createdAt: Date;
                    organizationId: string;
                    description: string | null;
                    reason: string | null;
                    workerId: string;
                    createdById: string | null;
                    amount: Prisma.Decimal;
                    sourceType: string | null;
                    sourceId: string | null;
                    financialAccountId: string | null;
                    effectiveDate: Date;
                    entryType: import("@prisma/client").$Enums.WorkerLedgerEntryType;
                    payrollPeriod: string | null;
                    baseSalarySnapshot: Prisma.Decimal | null;
                    paymentMethodId: string | null;
                    eligibleFrom: Date | null;
                    eligibleThrough: Date | null;
                    eligibleDays: number | null;
                    dailyRate: Prisma.Decimal | null;
                    isFullMonth: boolean | null;
                    calcSource: string | null;
                    reversedEntryId: string | null;
                };
            } & {
                id: string;
                createdAt: Date;
                organizationId: string;
                amount: Prisma.Decimal;
                settlementId: string;
                ledgerEntryId: string;
            })[];
            id: string;
            createdAt: Date;
            organizationId: string;
            notes: string | null;
            workerId: string;
            createdById: string | null;
            financialAccountId: string | null;
            idempotencyKey: string | null;
            kind: import("@prisma/client").$Enums.WorkerSettlementKind;
            payrollPeriod: string | null;
            paymentMethodId: string | null;
            grossAmount: Prisma.Decimal;
            netAmount: Prisma.Decimal;
            settlementNumber: string;
            fromDate: Date | null;
            toDate: Date | null;
            loanRecovery: Prisma.Decimal;
            advanceRecovery: Prisma.Decimal;
            otherDeductions: Prisma.Decimal;
            paymentDate: Date;
            voidedAt: Date | null;
            voidedById: string | null;
            voidReason: string | null;
        };
        alreadyVoid: boolean;
    }>;
    private runVoidTransaction;
    get(organizationId: string, id: string): Promise<{
        status: "ACTIVE" | "VOID";
        remainingLoan: string;
        remainingAdvance: string;
        worker: {
            id: string;
            name: string;
            workerNumber: string | null;
            compensationMode: import("@prisma/client").$Enums.WorkerCompMode;
            typeLinks: ({
                workerType: {
                    code: string;
                    name: string;
                };
            } & {
                id: string;
                createdAt: Date;
                isPrimary: boolean;
                workerId: string;
                workerTypeId: string;
            })[];
        };
        paymentMethod: {
            id: string;
            code: string;
            name: string;
        } | null;
        voidedAllocations: ({
            ledgerEntry: {
                completion: ({
                    assignment: {
                        order: {
                            id: string;
                            customer: {
                                id: string;
                                name: string;
                                customerNumber: string | null;
                            };
                            orderNumber: string | null;
                        };
                    } & {
                        id: string;
                        createdAt: Date;
                        organizationId: string;
                        updatedAt: Date;
                        status: import("@prisma/client").$Enums.AssignmentStatus;
                        notes: string | null;
                        workerId: string;
                        workerTypeId: string | null;
                        orderId: string;
                        stage: import("@prisma/client").$Enums.ProductionStage;
                        garmentLineId: string | null;
                        designLineId: string | null;
                        qtyAssigned: Prisma.Decimal;
                        qtyCompleted: Prisma.Decimal;
                        rateItemId: string | null;
                        rateAmount: Prisma.Decimal | null;
                        rateSource: import("@prisma/client").$Enums.AssignmentRateSource;
                        rateOverrideReason: string | null;
                        assignedDate: Date;
                        dueDate: Date | null;
                        reworkReason: string | null;
                        cancelledAt: Date | null;
                        cancelReason: string | null;
                        createdById: string | null;
                    };
                } & {
                    id: string;
                    createdAt: Date;
                    organizationId: string;
                    notes: string | null;
                    workerId: string;
                    stage: import("@prisma/client").$Enums.ProductionStage;
                    rateAmount: Prisma.Decimal | null;
                    createdById: string | null;
                    qty: Prisma.Decimal;
                    idempotencyKey: string | null;
                    assignmentId: string;
                    completedAt: Date;
                    earningId: string | null;
                }) | null;
            } & {
                id: string;
                createdAt: Date;
                organizationId: string;
                description: string | null;
                reason: string | null;
                workerId: string;
                createdById: string | null;
                amount: Prisma.Decimal;
                sourceType: string | null;
                sourceId: string | null;
                financialAccountId: string | null;
                effectiveDate: Date;
                entryType: import("@prisma/client").$Enums.WorkerLedgerEntryType;
                payrollPeriod: string | null;
                baseSalarySnapshot: Prisma.Decimal | null;
                paymentMethodId: string | null;
                eligibleFrom: Date | null;
                eligibleThrough: Date | null;
                eligibleDays: number | null;
                dailyRate: Prisma.Decimal | null;
                isFullMonth: boolean | null;
                calcSource: string | null;
                reversedEntryId: string | null;
            };
        } & {
            id: string;
            createdAt: Date;
            organizationId: string;
            amount: Prisma.Decimal;
            settlementId: string;
            ledgerEntryId: string;
            allocatedAt: Date;
        })[];
        allocations: ({
            ledgerEntry: {
                completion: ({
                    assignment: {
                        order: {
                            id: string;
                            customer: {
                                id: string;
                                name: string;
                                customerNumber: string | null;
                            };
                            orderNumber: string | null;
                        };
                    } & {
                        id: string;
                        createdAt: Date;
                        organizationId: string;
                        updatedAt: Date;
                        status: import("@prisma/client").$Enums.AssignmentStatus;
                        notes: string | null;
                        workerId: string;
                        workerTypeId: string | null;
                        orderId: string;
                        stage: import("@prisma/client").$Enums.ProductionStage;
                        garmentLineId: string | null;
                        designLineId: string | null;
                        qtyAssigned: Prisma.Decimal;
                        qtyCompleted: Prisma.Decimal;
                        rateItemId: string | null;
                        rateAmount: Prisma.Decimal | null;
                        rateSource: import("@prisma/client").$Enums.AssignmentRateSource;
                        rateOverrideReason: string | null;
                        assignedDate: Date;
                        dueDate: Date | null;
                        reworkReason: string | null;
                        cancelledAt: Date | null;
                        cancelReason: string | null;
                        createdById: string | null;
                    };
                } & {
                    id: string;
                    createdAt: Date;
                    organizationId: string;
                    notes: string | null;
                    workerId: string;
                    stage: import("@prisma/client").$Enums.ProductionStage;
                    rateAmount: Prisma.Decimal | null;
                    createdById: string | null;
                    qty: Prisma.Decimal;
                    idempotencyKey: string | null;
                    assignmentId: string;
                    completedAt: Date;
                    earningId: string | null;
                }) | null;
            } & {
                id: string;
                createdAt: Date;
                organizationId: string;
                description: string | null;
                reason: string | null;
                workerId: string;
                createdById: string | null;
                amount: Prisma.Decimal;
                sourceType: string | null;
                sourceId: string | null;
                financialAccountId: string | null;
                effectiveDate: Date;
                entryType: import("@prisma/client").$Enums.WorkerLedgerEntryType;
                payrollPeriod: string | null;
                baseSalarySnapshot: Prisma.Decimal | null;
                paymentMethodId: string | null;
                eligibleFrom: Date | null;
                eligibleThrough: Date | null;
                eligibleDays: number | null;
                dailyRate: Prisma.Decimal | null;
                isFullMonth: boolean | null;
                calcSource: string | null;
                reversedEntryId: string | null;
            };
        } & {
            id: string;
            createdAt: Date;
            organizationId: string;
            amount: Prisma.Decimal;
            settlementId: string;
            ledgerEntryId: string;
        })[];
        id: string;
        createdAt: Date;
        organizationId: string;
        notes: string | null;
        workerId: string;
        createdById: string | null;
        financialAccountId: string | null;
        idempotencyKey: string | null;
        kind: import("@prisma/client").$Enums.WorkerSettlementKind;
        payrollPeriod: string | null;
        paymentMethodId: string | null;
        grossAmount: Prisma.Decimal;
        netAmount: Prisma.Decimal;
        settlementNumber: string;
        fromDate: Date | null;
        toDate: Date | null;
        loanRecovery: Prisma.Decimal;
        advanceRecovery: Prisma.Decimal;
        otherDeductions: Prisma.Decimal;
        paymentDate: Date;
        voidedAt: Date | null;
        voidedById: string | null;
        voidReason: string | null;
    }>;
    listForWorker(organizationId: string, workerId: string): Promise<({
        paymentMethod: {
            code: string;
            name: string;
        } | null;
        allocations: {
            id: string;
        }[];
    } & {
        id: string;
        createdAt: Date;
        organizationId: string;
        notes: string | null;
        workerId: string;
        createdById: string | null;
        financialAccountId: string | null;
        idempotencyKey: string | null;
        kind: import("@prisma/client").$Enums.WorkerSettlementKind;
        payrollPeriod: string | null;
        paymentMethodId: string | null;
        grossAmount: Prisma.Decimal;
        netAmount: Prisma.Decimal;
        settlementNumber: string;
        fromDate: Date | null;
        toDate: Date | null;
        loanRecovery: Prisma.Decimal;
        advanceRecovery: Prisma.Decimal;
        otherDeductions: Prisma.Decimal;
        paymentDate: Date;
        voidedAt: Date | null;
        voidedById: string | null;
        voidReason: string | null;
    })[]>;
}
//# sourceMappingURL=worker-settlement.service.d.ts.map