import { Address, InvoicingCustomer, InvoicingCustomerColumnConfig, InvoicingCustomerTabId, InvoicingListCounts } from '@zeniai/client-epic-state'; import { SortState } from '../../dataListTable/types'; /** Row overflow-menu actions, mirroring the customer detail page. */ export type InvoicingCustomerRowAction = "createInvoice" | "edit" | "createPromotionalCredits" | "newSubscription"; /** Presentational Customers list for the in-app Invoicing module. */ export interface InvoicingCustomerListPageProps { activeStatus: string; /** Shared address store slice, keyed by id — used to render each row's billing address. */ addressesById: Record; /** * CES-owned column set + sort metadata (`{key, sortable}`). Drives the column * order and sortability; widths, alignment, header labels and cell rendering * stay here in the view layer (see {@link CUSTOMER_COLUMN_SPECS}). */ columns: InvoicingCustomerColumnConfig[]; counts: InvoicingListCounts; customers: InvoicingCustomer[]; hasMore: boolean; isLoading: boolean; isLoadingMore: boolean; searchValue: string; /** CES-owned ordered filter-tab id set. Labels + counts are applied here. */ tabIds: InvoicingCustomerTabId[]; countsLoading?: boolean; sortState?: SortState | null; onAddCustomer: () => void; onCustomerClick: (customerId: string) => void; onLoadMore: () => void; onSearchChange: (value: string) => void; onStatusChange: (status: string) => void; onImportCsv?: () => void; onRowAction?: (customerId: string, action: InvoicingCustomerRowAction) => void; onSortChange?: (next: SortState | null) => void; } export declare function InvoicingCustomerListPage({ activeStatus, addressesById, columns, counts, countsLoading, customers, hasMore, isLoading, isLoadingMore, searchValue, sortState, tabIds, onAddCustomer, onCustomerClick, onImportCsv, onLoadMore, onRowAction, onSearchChange, onSortChange, onStatusChange, }: Readonly): import("react/jsx-runtime").JSX.Element; export default InvoicingCustomerListPage;