import { InvoicingInvoice, InvoicingInvoiceKPIs, InvoicingInvoiceTabId, InvoicingListCounts, InvoicingNamedOption, VoidInvoiceBody } from '@zeniai/client-epic-state'; import { SortState } from '../../dataListTable/types'; /** * Presentational Invoices list page for the in-app Invoicing module. * * Redux-agnostic: the Redux-wired screen (zeni-web-app-ui * `src/screens/invoicing/InvoicesListScreen.tsx`) selects the invoice list slice * from `@zeniai/client-epic-state` and passes data + handlers down. Built on the * shared `InvoicingListScaffold` (header / KPIs / tabs / DataListTable). */ export interface InvoicingInvoiceListPageProps { activeStatus: string; counts: InvoicingListCounts; hasMore: boolean; invoices: InvoicingInvoice[]; isLoading: boolean; isLoadingMore: boolean; searchValue: string; /** CES-owned ordered filter-tab id set. Labels + counts are applied here. */ /** Config status list; labels the tabs and the row badges. */ statusOptions: InvoicingNamedOption[]; tabIds: InvoicingInvoiceTabId[]; countsLoading?: boolean; kpis?: InvoicingInvoiceKPIs; kpisLoading?: boolean; sortState?: SortState | null; voidingInvoiceId?: string; onCreateInvoice: () => void; onInvoiceClick: (invoiceId: string) => void; onLoadMore: () => void; onSearchChange: (value: string) => void; onStatusChange: (status: string) => void; onImportCsv?: () => void; onRowAction?: (invoiceId: string, action: InvoicingInvoiceRowAction) => void; onSortChange?: (next: SortState | null) => void; onVoidInvoice?: (invoiceId: string, body: VoidInvoiceBody) => void; } /** Row overflow-menu actions, mirroring the invoice detail page. */ export type InvoicingInvoiceRowAction = "issueCreditNote" | "recordPayment" | "regenerate" | "sendReminder" | "void"; export declare function InvoicingInvoiceListPage({ activeStatus, counts, countsLoading, hasMore, invoices, isLoading, isLoadingMore, kpis, kpisLoading, searchValue, sortState, statusOptions, tabIds, onCreateInvoice, onImportCsv, onInvoiceClick, onLoadMore, onRowAction, onSearchChange, onSortChange, onStatusChange, onVoidInvoice, voidingInvoiceId, }: Readonly): import("react/jsx-runtime").JSX.Element; export default InvoicingInvoiceListPage;