import { Prisma } from "../generated/prisma/client.js";
export declare class SupplierRepository {
    create(data: Prisma.SupplierUncheckedCreateInput): Promise<{
        name: string;
        id: bigint;
        address: string | null;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        mobileNo: string;
        tamilName: string | null;
        createdBy: bigint | null;
        stateId: bigint;
        districtId: bigint;
        openingBalance: Prisma.Decimal;
        outstandingBalance: Prisma.Decimal;
        deletedAt: Date | null;
    }>;
    findAll(skip?: number, take?: number, search?: string, status?: boolean): Promise<{
        items: ({
            state: {
                name: string;
                id: bigint;
                status: boolean;
                createdAt: Date;
                updatedAt: Date;
                tamilName: string | null;
                createdBy: bigint | null;
            };
            district: {
                name: string;
                id: bigint;
                status: boolean;
                createdAt: Date;
                updatedAt: Date;
                tamilName: string | null;
                createdBy: bigint | null;
                stateId: bigint;
            };
        } & {
            name: string;
            id: bigint;
            address: string | null;
            status: boolean;
            createdAt: Date;
            updatedAt: Date;
            mobileNo: string;
            tamilName: string | null;
            createdBy: bigint | null;
            stateId: bigint;
            districtId: bigint;
            openingBalance: Prisma.Decimal;
            outstandingBalance: Prisma.Decimal;
            deletedAt: Date | null;
        })[];
        total: number;
    }>;
    findById(id: bigint): Promise<({
        state: {
            name: string;
            id: bigint;
            status: boolean;
            createdAt: Date;
            updatedAt: Date;
            tamilName: string | null;
            createdBy: bigint | null;
        };
        district: {
            name: string;
            id: bigint;
            status: boolean;
            createdAt: Date;
            updatedAt: Date;
            tamilName: string | null;
            createdBy: bigint | null;
            stateId: bigint;
        };
    } & {
        name: string;
        id: bigint;
        address: string | null;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        mobileNo: string;
        tamilName: string | null;
        createdBy: bigint | null;
        stateId: bigint;
        districtId: bigint;
        openingBalance: Prisma.Decimal;
        outstandingBalance: Prisma.Decimal;
        deletedAt: Date | null;
    }) | null>;
    findByNameAndMobileNo(name: string, mobileNo: string, excludeId?: bigint): Promise<{
        name: string;
        id: bigint;
        address: string | null;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        mobileNo: string;
        tamilName: string | null;
        createdBy: bigint | null;
        stateId: bigint;
        districtId: bigint;
        openingBalance: Prisma.Decimal;
        outstandingBalance: Prisma.Decimal;
        deletedAt: Date | null;
    } | null>;
    update(id: bigint, data: Prisma.SupplierUncheckedUpdateInput): Promise<{
        name: string;
        id: bigint;
        address: string | null;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        mobileNo: string;
        tamilName: string | null;
        createdBy: bigint | null;
        stateId: bigint;
        districtId: bigint;
        openingBalance: Prisma.Decimal;
        outstandingBalance: Prisma.Decimal;
        deletedAt: Date | null;
    }>;
    softDelete(id: bigint): Promise<{
        name: string;
        id: bigint;
        address: string | null;
        status: boolean;
        createdAt: Date;
        updatedAt: Date;
        mobileNo: string;
        tamilName: string | null;
        createdBy: bigint | null;
        stateId: bigint;
        districtId: bigint;
        openingBalance: Prisma.Decimal;
        outstandingBalance: Prisma.Decimal;
        deletedAt: Date | null;
    }>;
    getStatesAndDistricts(): Promise<{
        name: string;
        id: bigint;
        tamilName: string | null;
        districts: {
            name: string;
            id: bigint;
            tamilName: string | null;
        }[];
    }[]>;
    activeSupplierCount(): Promise<number>;
    getTotalOutstandingBalance(): Promise<number>;
    getVendorPaymentsBreakdown(): Promise<{
        active: number;
        inactive: number;
        total: number;
    }>;
    getSupplierOpeningBalance(supplierId?: bigint, dateBefore?: Date): Promise<number>;
    getSupplierLedgerTransactions(supplierId?: bigint, dateFrom?: Date, dateTo?: Date): Promise<{
        date: Date;
        voucherNo: string;
        supplierName: string;
        description: string;
        transactionType: string;
        debit: number;
        credit: number;
    }[]>;
    findAllActiveSuppliers(): Promise<{
        name: string;
        id: bigint;
    }[]>;
}
//# sourceMappingURL=SupplierRepository.d.ts.map