import { Context } from '../../context';
import { PrismaClient, Prisma, Invoice } from '@prisma/client';
import { InvoiceWithItems } from "../../../../payment-api/src";
export declare const deleteInvoiceById: (id: string, authenticate: Context['authenticate'], invoice: PrismaClient['invoice']) => Promise<Invoice>;
type CreateInvoiceInput = Omit<Prisma.InvoiceUncheckedCreateInput, 'items' | 'modifiedAt'> & {
    items: Prisma.InvoiceItemUncheckedCreateWithoutInvoicesInput[];
};
export declare const createInvoice: ({ items, ...input }: CreateInvoiceInput, authenticate: Context['authenticate'], invoice: PrismaClient['invoice']) => Promise<InvoiceWithItems>;
type UpdateInvoiceInput = Omit<Prisma.InvoiceUncheckedUpdateInput, 'items' | 'modifiedAt' | 'createdAt'> & {
    items: Prisma.InvoiceItemUncheckedCreateWithoutInvoicesInput[];
};
export declare const updateInvoice: (id: string, { items, ...input }: UpdateInvoiceInput, authenticate: Context['authenticate'], invoice: PrismaClient['invoice']) => Promise<InvoiceWithItems>;
export declare const markInvoiceAsPaid: (id: string, authenticate: Context['authenticate'], userSession: Context['authenticateUser'], prismaClient: PrismaClient) => Promise<InvoiceWithItems>;
export {};
