import type { Computed, Signal } from "@serenity-is/domwise"; /** * Reactive signals surface for the grid's chrome and pinning state. * Backed by `@serenity-is/domwise` signals and used internally by the grid * and layout engine to drive visibility and pinning. */ export interface GridSignals { /** Whether the column header row is visible. */ readonly showColumnHeader: Signal; /** Inverse of {@link GridSignals.showColumnHeader}; `true` when the header is hidden. */ readonly hideColumnHeader: Computed; /** Whether the top panel row is visible. */ readonly showTopPanel: Signal; /** Inverse of {@link GridSignals.showTopPanel}. */ readonly hideTopPanel: Computed; /** Whether the header row (filter row) is visible. */ readonly showHeaderRow: Signal; /** Inverse of {@link GridSignals.showHeaderRow}. */ readonly hideHeaderRow: Computed; /** Whether the footer row is visible. */ readonly showFooterRow: Signal; /** Inverse of {@link GridSignals.showFooterRow}. */ readonly hideFooterRow: Computed; /** Number of columns pinned to the start (left in LTR, right in RTL) side. */ readonly pinnedStartCols: Signal; /** Number of columns pinned to the end (right in LTR, left in RTL) side. */ readonly pinnedEndCols: Signal; /** Number of rows frozen at the top of the viewport. */ readonly frozenTopRows: Signal; /** Number of rows frozen at the bottom of the viewport. */ readonly frozenBottomRows: Signal; }