import { PrismaService } from '../prisma/prisma.service';
import { AccountingService } from '../accounting/accounting.service';
import { InventoryService } from '../inventory/inventory.service';
export interface FatSaleLineDto {
    ref: number;
    dftrNo: number;
    sfatNo: number;
    sfatSq: number;
    dates?: Date;
    dailyActNo?: string;
    dayMg?: string;
    dayMt?: string;
    sfatMtnm?: string;
    qnTtin?: number;
    sfatPric?: number;
    monVl?: number;
    curMs?: number;
    curDs?: number;
}
export interface FatSaleHeaderDto {
    sfatTyp?: number;
    sfatBrnch?: number;
    sfatMndb?: number;
    sfatKlfn?: number;
    sfatSalr?: number;
    sfatExprt?: number;
    sfatMncd?: number;
    sfatSlwy?: number;
    sfatPaym?: number;
}
export declare class InvoicesService {
    private prisma;
    private accountingService;
    private inventoryService;
    constructor(prisma: PrismaService, accountingService: AccountingService, inventoryService: InventoryService);
    getLastSaleInvoice(dft: number, st: number, ref: number): Promise<number>;
    getLastBuyInvoice(dft: number, st: number, ref: number): Promise<number>;
    holdSaleInvoice(dft: number, ref: number): Promise<number>;
    holdBuyInvoice(dft: number, ref: number): Promise<number>;
    getLastBBack(dft: number, st: number, ref: number): Promise<number>;
    getLastSBack(dft: number, st: number, ref: number): Promise<number>;
    getLastPosl(dft: number, st: number, ref: number): Promise<number>;
    getLastExInvoice(dft: number, st: number, ref: number): Promise<number>;
    holdBBackInvoice(dft: number, ref: number): Promise<number>;
    holdSBackInvoice(dft: number, ref: number): Promise<number>;
    holdPosl(dft: number, ref: number): Promise<number>;
    holdExInvoice(dft: number, ref: number): Promise<number>;
    doSaleInvoice(dft: number, n: number, ref: number): Promise<{
        success: boolean;
    }>;
    unDoSaleInvoice(dft: number, n: number, ref: number): Promise<{
        success: boolean;
    }>;
    doBuyInvoice(dft: number, n: number, ref: number): Promise<{
        success: boolean;
    }>;
    unDoBuyInvoice(dft: number, n: number, ref: number): Promise<{
        success: boolean;
    }>;
    getSaleInvoiceLines(dft: number, n: number, ref: number): Promise<{
        ref: number;
        dailyActNo: string | null;
        dayMg: string | null;
        dayMt: string | null;
        dates: Date | null;
        dftrNo: number;
        qnTtin: number;
        monVl: number;
        curMs: number;
        curDs: number;
        sfatNo: number;
        sfatSq: number;
        sfatMtnm: string | null;
        sfatPric: number | null;
        sfatSndac: number;
        sfatSndmg: number;
        sfatTyp: number | null;
        sfatBrnch: number | null;
        sfatMndb: number | null;
        sfatKlfn: number | null;
        sfatSalr: number | null;
        sfatExprt: number | null;
        sfatMncd: number | null;
        sfatSlwy: number | null;
        sfatPaym: number | null;
    }[]>;
    listSaleInvoices(dft: number, ref: number, sfatTyp?: number): Promise<{
        dailyActNo: string | null;
        dates: Date | null;
        sfatNo: number;
        sfatTyp: number | null;
        sfatBrnch: number | null;
        sfatMndb: number | null;
        sfatPaym: number | null;
    }[]>;
    createOrUpdateSaleInvoice(dft: number, n: number, ref: number, lines: FatSaleLineDto[], header?: FatSaleHeaderDto): Promise<{
        ref: number;
        dailyActNo: string | null;
        dayMg: string | null;
        dayMt: string | null;
        dates: Date | null;
        dftrNo: number;
        qnTtin: number;
        monVl: number;
        curMs: number;
        curDs: number;
        sfatNo: number;
        sfatSq: number;
        sfatMtnm: string | null;
        sfatPric: number | null;
        sfatSndac: number;
        sfatSndmg: number;
        sfatTyp: number | null;
        sfatBrnch: number | null;
        sfatMndb: number | null;
        sfatKlfn: number | null;
        sfatSalr: number | null;
        sfatExprt: number | null;
        sfatMncd: number | null;
        sfatSlwy: number | null;
        sfatPaym: number | null;
    }[]>;
    deleteSaleInvoice(dft: number, n: number, ref: number): Promise<{
        success: boolean;
    }>;
}
