import { ReactNode } from 'react'; import { StyledCapsuleThemeType } from '../../common/StyledCapsule'; export interface InvoicingDetailPrimaryAction { label: string; isDisabled?: boolean; isLoading?: boolean; onClick: () => void; } export interface InvoicingDetailCancelAction { label: string; isDisabled?: boolean; isLoading?: boolean; onClick: () => void; } export interface InvoicingDetailField { label: string; value: ReactNode; } export interface InvoicingDetailScaffoldProps { isLoading: boolean; notFound: boolean; notFoundMessage: string; title: string; actions?: ReactNode; /** Cancel/discard action rendered beside the primary footer button (bill edit pattern). */ cancelAction?: InvoicingDetailCancelAction; children?: ReactNode; /** Raw footer content; overrides primaryAction/cancelAction when provided. */ footer?: ReactNode; /** Label/value rows rendered under the title (Figma: Email / Address / Customer Since). */ headerMeta?: InvoicingDetailField[]; /** Primary action rendered in the sticky bottom footer (bill detail pattern). */ primaryAction?: InvoicingDetailPrimaryAction; statusLabel?: string; statusType?: StyledCapsuleThemeType; subtitle?: string; summary?: InvoicingDetailField[]; /** When provided, renders a back-arrow icon button to the left of the title. */ onBack?: () => void; } export declare const InvoicingDetailSectionCard: import('@emotion/styled').StyledComponent<{ theme?: import('@emotion/react').Theme; as?: React.ElementType; }, import('react').DetailedHTMLProps, HTMLDivElement>, {}>; export interface InvoicingDetailSectionProps { title: string; action?: ReactNode; children?: ReactNode; /** Render children without the bordered card wrapper (e.g. KPI grids). */ plain?: boolean; } /** * Figma-style detail section: a title (with optional action button) above a * bordered card. Pair with {@link InvoicingDetailRow} / * {@link InvoicingDetailToggleRow} children for label/value listings, or any * other content (tables, documents) for richer sections. */ export declare function InvoicingDetailSection({ action, children, plain, title, }: Readonly): import("react/jsx-runtime").JSX.Element; export interface InvoicingDetailRowProps { label: string; value: ReactNode; /** Backend field-help code; the i-icon appears only when config has copy. */ fieldCode?: string; /** Optional semantic color for the value text. */ valueTone?: "alert" | "muted" | "primary" | "success"; } /** Figma-style detail row: label on the left, value right-aligned. */ export declare function InvoicingDetailRow({ fieldCode, label, value, valueTone, }: Readonly): import("react/jsx-runtime").JSX.Element; export interface InvoicingDetailToggleRowProps { checked: boolean; label: string; description?: string; } /** Read-only toggle row (Figma: Auto Collection / Allow Direct Debits). */ export declare function InvoicingDetailToggleRow({ checked, description, label, }: Readonly): import("react/jsx-runtime").JSX.Element; export interface InvoicingMiniTableColumn { key: string; label: string; align?: "start" | "end"; render: (row: TRow) => ReactNode; } export interface InvoicingMiniTableProps { columns: InvoicingMiniTableColumn[]; emptyMessage: string; rows: TRow[]; /** Drop the interactive affordances (pointer + primary hover); keeps the hover surface. */ rowsReadOnly?: boolean; getRowKey: (row: TRow, index: number) => string; onRowClick?: (row: TRow) => void; } /** Lightweight static table for detail-page sections (line items, links). */ export declare function InvoicingMiniTable({ columns, emptyMessage, getRowKey, onRowClick, rows, rowsReadOnly, }: Readonly>): import("react/jsx-runtime").JSX.Element; /** * Shared scaffold for invoicing detail pages: header (title + optional subtitle, * status capsule and action buttons), a key-facts summary grid, and arbitrary * section children (line items, linked records, etc.). Handles loading and * not-found states so every detail page stays visually consistent. */ export declare function InvoicingDetailScaffold({ actions, cancelAction, children, footer, headerMeta, isLoading, notFound, notFoundMessage, onBack, primaryAction, statusLabel, statusType, subtitle, summary, title, }: Readonly): import("react/jsx-runtime").JSX.Element; export default InvoicingDetailScaffold;