import { type ApServiceType } from "../schemas.js"; export interface SupplierInvoiceLineInput { description: string; serviceType?: ApServiceType; costCategoryId?: string | null; supplierServiceId?: string | null; quantity?: number; unitAmountCents: number; taxRateBps?: number | null; taxAmountCents?: number; totalAmountCents: number; sortOrder?: number; } export interface SupplierCostAllocationInput { supplierInvoiceLineId?: string | null; targetType: "departure" | "product" | "booking" | "traveler" | "unattributed"; departureId?: string | null; productId?: string | null; bookingId?: string | null; bookingItemId?: string | null; travelerId?: string | null; amountCents: number; baseAmountCents?: number | null; splitMethod?: "manual" | "per_pax" | "equal" | "weighted"; } export interface CreateSupplierInvoiceInput { supplierId: string; supplierInvoiceNo: string; internalRef?: string | null; status?: "draft" | "received" | "approved" | "partially_paid" | "paid" | "disputed" | "void"; currency: string; baseCurrency?: string | null; fxRateSetId?: string | null; subtotalCents?: number; taxCents?: number; totalCents?: number; taxRegimeId?: string | null; issueDate: string; dueDate?: string | null; storageKey?: string | null; notes?: string | null; lines?: SupplierInvoiceLineInput[]; allocations?: SupplierCostAllocationInput[]; } export type UpdateSupplierInvoiceInput = Partial>; export interface CreateSupplierInvoiceAttachmentInput { name: string; kind?: string; mimeType?: string | null; fileSize?: number | null; storageKey?: string | null; checksum?: string | null; } export interface RecordSupplierPaymentInput { amountCents: number; currency: string; paymentMethod: string; status?: "pending" | "completed" | "failed" | "refunded"; paymentDate: string; referenceNumber?: string | null; notes?: string | null; baseCurrency?: string | null; baseAmountCents?: number | null; fxRateSetId?: string | null; supplierId?: string | null; bookingId?: string | null; } export declare function useSupplierInvoiceMutation(): { create: import("@tanstack/react-query").UseMutationResult<{ id: string; supplierId: string; supplierInvoiceNo: string; internalRef: string | null; status: "paid" | "void" | "approved" | "draft" | "partially_paid" | "received" | "disputed"; currency: string; baseCurrency: string | null; fxRateSetId: string | null; subtotalCents: number; taxCents: number; totalCents: number; paidCents: number; balanceDueCents: number; taxRegimeId: string | null; issueDate: string; dueDate: string | null; receivedAt: string | null; approvedAt: string | null; approvedBy: string | null; storageKey: string | null; extractionId: string | null; notes: string | null; createdAt: string; updatedAt: string; lines: { id: string; supplierInvoiceId: string; description: string; serviceType: "other" | "transport" | "flight" | "accommodation" | "guide" | "meal" | "experience" | "insurance"; supplierServiceId: string | null; quantity: number; unitAmountCents: number; taxRateBps: number | null; taxAmountCents: number; totalAmountCents: number; sortOrder: number; createdAt: string; updatedAt: string; costCategoryId?: string | null | undefined; }[]; allocations: { id: string; supplierInvoiceId: string; supplierInvoiceLineId: string | null; targetType: "booking" | "unattributed" | "departure" | "product" | "traveler"; departureId: string | null; productId: string | null; bookingId: string | null; bookingItemId: string | null; travelerId: string | null; amountCents: number; baseAmountCents: number | null; splitMethod: "manual" | "per_pax" | "equal" | "weighted"; createdAt: string; updatedAt: string; targetLabel?: string | null | undefined; }[]; }, Error, CreateSupplierInvoiceInput, unknown>; update: import("@tanstack/react-query").UseMutationResult<{ id: string; supplierId: string; supplierInvoiceNo: string; internalRef: string | null; status: "paid" | "void" | "approved" | "draft" | "partially_paid" | "received" | "disputed"; currency: string; baseCurrency: string | null; fxRateSetId: string | null; subtotalCents: number; taxCents: number; totalCents: number; paidCents: number; balanceDueCents: number; taxRegimeId: string | null; issueDate: string; dueDate: string | null; receivedAt: string | null; approvedAt: string | null; approvedBy: string | null; storageKey: string | null; extractionId: string | null; notes: string | null; createdAt: string; updatedAt: string; lines: { id: string; supplierInvoiceId: string; description: string; serviceType: "other" | "transport" | "flight" | "accommodation" | "guide" | "meal" | "experience" | "insurance"; supplierServiceId: string | null; quantity: number; unitAmountCents: number; taxRateBps: number | null; taxAmountCents: number; totalAmountCents: number; sortOrder: number; createdAt: string; updatedAt: string; costCategoryId?: string | null | undefined; }[]; allocations: { id: string; supplierInvoiceId: string; supplierInvoiceLineId: string | null; targetType: "booking" | "unattributed" | "departure" | "product" | "traveler"; departureId: string | null; productId: string | null; bookingId: string | null; bookingItemId: string | null; travelerId: string | null; amountCents: number; baseAmountCents: number | null; splitMethod: "manual" | "per_pax" | "equal" | "weighted"; createdAt: string; updatedAt: string; targetLabel?: string | null | undefined; }[]; }, Error, { id: string; input: UpdateSupplierInvoiceInput; }, unknown>; remove: import("@tanstack/react-query").UseMutationResult<{ data: { id: string; } | null; }, Error, string, unknown>; setLines: import("@tanstack/react-query").UseMutationResult<{ id: string; supplierId: string; supplierInvoiceNo: string; internalRef: string | null; status: "paid" | "void" | "approved" | "draft" | "partially_paid" | "received" | "disputed"; currency: string; baseCurrency: string | null; fxRateSetId: string | null; subtotalCents: number; taxCents: number; totalCents: number; paidCents: number; balanceDueCents: number; taxRegimeId: string | null; issueDate: string; dueDate: string | null; receivedAt: string | null; approvedAt: string | null; approvedBy: string | null; storageKey: string | null; extractionId: string | null; notes: string | null; createdAt: string; updatedAt: string; lines: { id: string; supplierInvoiceId: string; description: string; serviceType: "other" | "transport" | "flight" | "accommodation" | "guide" | "meal" | "experience" | "insurance"; supplierServiceId: string | null; quantity: number; unitAmountCents: number; taxRateBps: number | null; taxAmountCents: number; totalAmountCents: number; sortOrder: number; createdAt: string; updatedAt: string; costCategoryId?: string | null | undefined; }[]; allocations: { id: string; supplierInvoiceId: string; supplierInvoiceLineId: string | null; targetType: "booking" | "unattributed" | "departure" | "product" | "traveler"; departureId: string | null; productId: string | null; bookingId: string | null; bookingItemId: string | null; travelerId: string | null; amountCents: number; baseAmountCents: number | null; splitMethod: "manual" | "per_pax" | "equal" | "weighted"; createdAt: string; updatedAt: string; targetLabel?: string | null | undefined; }[]; }, Error, { id: string; lines: SupplierInvoiceLineInput[]; }, unknown>; setAllocations: import("@tanstack/react-query").UseMutationResult<{ id: string; supplierId: string; supplierInvoiceNo: string; internalRef: string | null; status: "paid" | "void" | "approved" | "draft" | "partially_paid" | "received" | "disputed"; currency: string; baseCurrency: string | null; fxRateSetId: string | null; subtotalCents: number; taxCents: number; totalCents: number; paidCents: number; balanceDueCents: number; taxRegimeId: string | null; issueDate: string; dueDate: string | null; receivedAt: string | null; approvedAt: string | null; approvedBy: string | null; storageKey: string | null; extractionId: string | null; notes: string | null; createdAt: string; updatedAt: string; lines: { id: string; supplierInvoiceId: string; description: string; serviceType: "other" | "transport" | "flight" | "accommodation" | "guide" | "meal" | "experience" | "insurance"; supplierServiceId: string | null; quantity: number; unitAmountCents: number; taxRateBps: number | null; taxAmountCents: number; totalAmountCents: number; sortOrder: number; createdAt: string; updatedAt: string; costCategoryId?: string | null | undefined; }[]; allocations: { id: string; supplierInvoiceId: string; supplierInvoiceLineId: string | null; targetType: "booking" | "unattributed" | "departure" | "product" | "traveler"; departureId: string | null; productId: string | null; bookingId: string | null; bookingItemId: string | null; travelerId: string | null; amountCents: number; baseAmountCents: number | null; splitMethod: "manual" | "per_pax" | "equal" | "weighted"; createdAt: string; updatedAt: string; targetLabel?: string | null | undefined; }[]; }, Error, { id: string; allocations: SupplierCostAllocationInput[]; }, unknown>; recordPayment: import("@tanstack/react-query").UseMutationResult<{ id: string; bookingId: string | null; supplierId: string | null; amountCents: number; currency: string; paymentMethod: string; status: "pending" | "failed" | "completed" | "refunded"; referenceNumber: string | null; paymentDate: string; createdAt: string; supplierInvoiceId?: string | null | undefined; baseCurrency?: string | null | undefined; baseAmountCents?: number | null | undefined; fxRateSetId?: string | null | undefined; notes?: string | null | undefined; } | null, Error, { id: string; input: RecordSupplierPaymentInput; }, unknown>; addAttachment: import("@tanstack/react-query").UseMutationResult<{ [x: string]: unknown; id: string; }, Error, { id: string; input: CreateSupplierInvoiceAttachmentInput; }, unknown>; removeAttachment: import("@tanstack/react-query").UseMutationResult<{ success: boolean; }, Error, { id: string; attachmentId: string; }, unknown>; };