import { FetchStateAndError, ID } from '../../../commonStateTypes/common'; import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndReport'; import { InvoicingDunningCase } from '../../../entity/invoicing/dunningCase/dunningCaseState'; import { InvoicingInvoice } from '../../../entity/invoicing/invoice/invoiceState'; import type { InvoicingFieldHelpByCode } from '../../../entity/invoicing/invoicingCommonPayload'; import { RootState } from '../../../rootStateTypes'; import { InvoicingDunningEmailPreviewState } from './invoicingDunningCaseDetailViewState'; /** * Read-only view for the dunning case detail page: the dunning case entity + its * fetch state, plus the per-case action run-state (pause/resume/retry) folded in * so the detail screen depends on this single read selector. */ export interface InvoicingDunningCaseDetailView extends SelectorView { actionState: FetchStateAndError; emailPreview: InvoicingDunningEmailPreviewState; /** * Backend help copy for this screen's field group, keyed by field code. * Folded in here so the screen never reaches for the config view itself. */ fieldHelp: InvoicingFieldHelpByCode; dunningCase?: InvoicingDunningCase; /** * The invoice this case is chasing. Folded in so the screen reads one * selector rather than pairing this with the invoice detail view. */ linkedInvoice?: InvoicingInvoice; } export declare const getInvoicingDunningCaseById: (state: RootState, id: string) => InvoicingDunningCase | undefined; export declare const getInvoicingDunningCaseDetail: (state: RootState, invoicingDunningCaseID: ID) => InvoicingDunningCaseDetailView; export declare const getInvoicingDunningEmailPreview: (state: RootState, invoicingDunningCaseID: ID) => InvoicingDunningEmailPreviewState;