import { FetchStateAndError, FetchedState, ID } from '../../../commonStateTypes/common'; import { InvoicingListCounts } from '../../../entity/invoicing/invoicingCommonPayload'; import { InvoicingListSort } from '../invoicingApiHelper'; export interface InvoicingDunningCaseFilters { search?: string; } export declare const ALL_INVOICING_DUNNING_CASE_SORT_KEYS: readonly ["customer", "invoice", "attempts", "next_retry", "days_past_due", "failureReason", "status", "amount"]; export declare const toInvoicingDunningCaseSortKey: (v: string) => "status" | "invoice" | "amount" | "customer" | "attempts" | "next_retry" | "days_past_due" | "failureReason"; export type InvoicingDunningCaseSortKey = ReturnType; /** * Structural column descriptor owned by CES so the dunning-list column set, * ordering and sortability live next to the `InvoicingDunningCase` 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 InvoicingDunningCaseColumnConfig { key: InvoicingDunningCaseSortKey; sortable: boolean; } export declare const INVOICING_DUNNING_CASE_COLUMNS: InvoicingDunningCaseColumnConfig[]; export declare const ALL_INVOICING_DUNNING_CASE_TAB_IDS: readonly ["all", "Retrying", "Scheduled", "Manual Review", "Paused", "Resolved", "Cancelled"]; export declare const toInvoicingDunningCaseTabId: (v: string) => "Retrying" | "Scheduled" | "Manual Review" | "Resolved" | "Cancelled" | "Paused" | "all"; export type InvoicingDunningCaseTabId = ReturnType; export interface InvoicingDunningCaseListViewState extends FetchedState { /** Selected status tab (CES-owned so it persists across page revisits). */ activeTab: InvoicingDunningCaseTabId; counts: InvoicingListCounts; countsFetchState: FetchStateAndError; filters: InvoicingDunningCaseFilters; ids: ID[]; nextCursor: string | null; /** Active server-side sort (undefined = backend default order). */ sort?: InvoicingListSort; }