import type{TemplateResult}from'lit';import type{LyraSize}from'../../../internal/variants.js';import type{LyraClipboardWriteFailure,LyraClipboardWriteSuccess}from'../../../internal/clipboard.js';import type{LyraEventDetailSnapshot}from'../../../internal/lyra-element.js'; /** A stable identity used by selection and expansion state. */ export type DataGridKey=string|number; /** The two container treatments supported by ``. */ export type DataGridAppearance='outlined'|'plain'; /** Row-selection behavior. The empty spelling is the declarative alias for `multiple`. */ export type DataGridSelectable=''|'single'|'multiple'|'none'; /** The shared Lyra size ladder, excluding the intentionally unsupported `2xs` tier. */ export type DataGridSize=Exclude; /** Pinning side. `false` means unpinned. * * `'left'` and `'right'` are **RTL-relative, not physical**: the pinning CSS is written in * logical properties (`inset-inline-start`/`inset-inline-end`), so a column pinned `'left'` * renders at the inline-start edge -- the physical *right* edge under `dir="rtl"` -- exactly * like a column pinned `'start'` would. `'start'`/`'end'` are the newer, unambiguously-named * spellings for the same two directions (mirroring ``'s `columns[].sticky: * boolean | TableEdgeAlign`, normalized the same way by `stickyDirection()` in * `table.class.ts`); `'left'` means `'start'` and `'right'` means `'end'` in the current writing * direction. Both spellings are permanent and interchangeable -- neither is deprecated. */ export type DataGridPinSide='left'|'right'|'start'|'end'|false;export type DataGridSortAlgorithm='alphanumeric'|'alphanumericCaseSensitive'|'text'|'textCaseSensitive'|'datetime'|'basic';export type DataGridFilterType='text'|'equals'|'number-range'|'date-range'|'set'|'includes-any'|'includes-all';export type DataGridAggregation ='sum'|'min'|'max'|'mean'|'median'|'count'|'unique'|'uniqueCount'|'extent'|((rows:readonly Row[],values:readonly unknown[])=>unknown); /** One column in a data grid. `field` accepts dot-separated property paths. */ export interface DataGridColumn>{readonly id?:string;readonly field?:string;readonly label?:string;readonly align?:'left'|'center'|'right'|'start'|'end';readonly width?:number;readonly minWidth?:number;readonly maxWidth?:number;readonly flex?:number;readonly formatter?:(value:unknown,row:Row)=>string|TemplateResult|Node|unknown; /** Applied as the generated cell's native `title`, symmetrical with ``'s * `columns[].cellTitle` -- e.g. the untruncated text behind an ellipsized cell, or a formatted * timestamp behind a relative one. Returning `undefined` (or an empty string) omits the * attribute entirely rather than rendering `title=""`, which would suppress an ancestor's own * tooltip. */ readonly cellTitle?:(row:Row)=>string|undefined;readonly value?:(row:Row)=>unknown;readonly sortable?:boolean;readonly sortFn?:DataGridSortAlgorithm;readonly comparator?:(left:unknown,right:unknown,leftRow:Row,rightRow:Row)=>number;readonly sortDescFirst?:boolean;readonly sortUndefined?:'first'|'last'|1| -1;readonly searchable?:boolean;readonly filterable?:boolean;readonly filterType?:DataGridFilterType;readonly filterFn?:(value:unknown,filter:unknown,row:Row)=>boolean;readonly hidden?:boolean;readonly hideable?:boolean;readonly resizable?:boolean;readonly movable?:boolean;readonly pinnable?:boolean;readonly pinned?:DataGridPinSide;readonly footer?:string|((rows:readonly Row[])=>unknown);readonly aggregation?:DataGridAggregation;readonly aggregatedFormatter?:(value:unknown,rows:readonly Row[])=>string|TemplateResult|Node|unknown;}export interface DataGridSort{readonly id:string;readonly desc:boolean;} /** Public sorting-state spelling used by the mirrored data-grid contract. */ export type SortingState=readonly DataGridSort[]; /** Additive descriptive alias retained for callers that prefer a component-qualified name. */ export type DataGridSortingState=SortingState;export interface DataGridFilter{readonly id:string;readonly value:unknown;} /** JSON-safe value vocabulary used by persisted data-grid state. */ export type DataGridJsonValue=null|boolean|number|string|readonly DataGridJsonValue[]|Readonly<{[key:string]:DataGridJsonValue;}>; /** A filter after conversion to the explicit persistence vocabulary. */ export interface DataGridStateFilter{readonly id:string;readonly value:DataGridJsonValue;}export interface DataGridRequest{readonly sort:DataGridSortingState;readonly filters:readonly DataGridFilter[];readonly search:string;readonly page:number;readonly pageSize:number;readonly signal:AbortSignal|undefined;}export interface DataGridResponse>{readonly rows:readonly Row[];readonly total:number;}export interface DataGridFacets{readonly uniqueValues:ReadonlyMap;readonly minMax?:readonly[number,number];}export interface DataGridColumnState{readonly order?:readonly string[];readonly widths?:Readonly>;readonly visibility?:Readonly>;readonly pinning?:Readonly>;} /** Serializable view state returned by `getState()`. */ export interface DataGridState extends DataGridColumnState{readonly sort?:DataGridSortingState;readonly filters?:readonly DataGridStateFilter[];readonly search?:string;readonly selectedRowKeys?:readonly DataGridKey[];readonly expandedRowKeys?:readonly DataGridKey[]; /** Mirrored compatibility alias for `selectedRowKeys`. */ readonly selectedKeys?:readonly DataGridKey[]; /** Mirrored compatibility alias for `expandedRowKeys`. */ readonly expandedKeys?:readonly DataGridKey[];readonly page?:number;readonly pageSize?:number;}export interface DataGridCsvOptions{readonly delimiter?:string;readonly includeHeaders?:boolean;readonly columnIds?:readonly string[];readonly escapeFormulas?:boolean;}export interface DataGridCopyOptions{readonly columnIds?:readonly string[];readonly includeHeaders?:boolean;readonly format?:'tsv'|'csv';readonly escapeFormulas?:boolean; /** Overrides the delimiter that `format` would otherwise select. */ readonly delimiter?:string;}export interface DataGridExportOptions extends DataGridCsvOptions{readonly fileName?:string;}export interface DataGridScrollOptions{readonly align?:'start'|'center'|'end';}export interface DataGridCellDetail>{readonly rowKey:DataGridKey;readonly columnId:string;readonly column:DataGridColumn;readonly value:unknown;readonly row:Row;readonly index:number;}export interface DataGridCellContextMenuDetail>extends DataGridCellDetail{readonly originalEvent:MouseEvent|KeyboardEvent;}export interface DataGridColumnMoveDetail{readonly columnOrder:readonly string[];readonly columnId:string;readonly finished:boolean;}export interface DataGridColumnResizeDetail{readonly columnId:string;readonly width:number;readonly finished:boolean;}export interface DataGridColumnPinDetail{readonly columnId:string;readonly side:DataGridPinSide;}export interface DataGridColumnVisibilityDetail{readonly columnId:string;readonly visible:boolean;}export interface DataGridDataErrorDetail{readonly error:unknown;readonly request:DataGridRequest;}export interface DataGridPageDetail{readonly page:number;readonly pageSize:number;}export interface DataGridRowDetail>{readonly rowKey:DataGridKey; /** Mirrored compatibility alias for `rowKey`. */ readonly key:DataGridKey;readonly row:Row;} /** A user-expanded or collapsed client-side group. */ export interface DataGridGroupDetail>{readonly key:string;readonly columnId:string;readonly value:unknown;readonly rows:readonly Row[];}export interface DataGridSelectionDetail>{readonly selectedRowKeys:readonly DataGridKey[]; /** Mirrored compatibility alias for `selectedRowKeys`. */ readonly selectedKeys:readonly DataGridKey[];readonly selectedRows:readonly Row[];}export interface LyraDataGridEventMap>{focus:FocusEvent;blur:FocusEvent;request:CustomEvent>;'lr-cell-click':CustomEvent>;'lr-cell-contextmenu':CustomEvent>;'lr-column-move':CustomEvent>;'lr-column-pin':CustomEvent;'lr-column-resize':CustomEvent;'lr-column-visibility-change':CustomEvent;'lr-copy':CustomEvent;'lr-copy-error':CustomEvent;'lr-data-error':CustomEvent>;'lr-filter-change':CustomEvent>;'lr-group-collapse':CustomEvent>>;'lr-group-expand':CustomEvent>>;'lr-page-change':CustomEvent;'lr-row-collapse':CustomEvent>;'lr-row-expand':CustomEvent>;'lr-row-select':CustomEvent>>;'lr-sort-request':CustomEvent>;'lr-sort-change':CustomEvent>;'lr-error':CustomEvent; /** The built-in `[part='retry-button']` was activated, only rendered while `error` is set. * Cancelable: the default action clears `error`; `preventDefault()` leaves it set instead. */ 'lr-retry':CustomEvent;}