import { FetchStateAndError, FetchedState, ID } from '../../../commonStateTypes/common'; import { InvoicingListCounts } from '../../../entity/invoicing/invoicingCommonPayload'; import { InvoicingListSort } from '../invoicingApiHelper'; export interface InvoicingCustomerFilters { search?: string; } export declare const ALL_INVOICING_CUSTOMER_SORT_KEYS: readonly ["name", "email", "billingAddress", "card", "autoCollect", "status"]; export declare const toInvoicingCustomerSortKey: (v: string) => "status" | "name" | "card" | "email" | "billingAddress" | "autoCollect"; export type InvoicingCustomerSortKey = ReturnType; /** * Structural column descriptor owned by CES so the customer-list column set, * ordering and sortability live next to the `InvoicingCustomer` model rather * than being hardcoded in web-components. Header labels, cell rendering and * layout (alignment, widths) stay in the view layer; this only carries the * column set, order and sort metadata. */ export interface InvoicingCustomerColumnConfig { key: InvoicingCustomerSortKey; sortable: boolean; } export declare const INVOICING_CUSTOMER_COLUMNS: InvoicingCustomerColumnConfig[]; export declare const ALL_INVOICING_CUSTOMER_TAB_IDS: readonly ["all", "active", "trial", "at_risk"]; export declare const toInvoicingCustomerTabId: (v: string) => "active" | "all" | "trial" | "at_risk"; export type InvoicingCustomerTabId = ReturnType; export interface InvoicingCustomerListViewState extends FetchedState { /** Selected status tab (CES-owned so it persists across page revisits). */ activeTab: InvoicingCustomerTabId; counts: InvoicingListCounts; countsFetchState: FetchStateAndError; filters: InvoicingCustomerFilters; ids: ID[]; nextCursor: string | null; /** Active server-side sort (undefined = backend default order). */ sort?: InvoicingListSort; }