import type { TemplateResult } from '../../../../Dom/Html';
/**
 * A callback function that renders a custom cell template for a data table column.
 *
 * @param item - The data item for the current row.
 * @param column - The column definition for the current column.
 * @param resolvedValue - The pre-resolved display value produced by the column's `pathFn`.
 * @returns A `TemplateResult`, plain `string`, or `Node` to render in the cell.
 *
 * @public
 */
export type CellTemplateFunction<TItem = unknown, TColumn = unknown> = (item: TItem, column: TColumn, resolvedValue: unknown) => TemplateResult | string | Node;
/**
 * A callback function that renders a custom header cell template for a data table column.
 *
 * @param column - The column definition for the current column.
 * @returns A `TemplateResult`, plain `string`, or `Node` to render in the header cell.
 *
 * @public
 */
export type HeaderCellTemplateFunction<TColumn = unknown> = (column: TColumn) => TemplateResult | string | Node;
/**
 * A custom comparator function for sorting a data table column.
 * When provided on a column definition, this function is used instead of the default string comparison.
 *
 * @param a - The first data item to compare.
 * @param b - The second data item to compare.
 * @param direction - The current sort direction (`'asc'` or `'desc'`).
 * @returns A negative number if `a` should come before `b`, a positive number if `a` should come after `b`, or `0` if they are equal.
 *
 * @public
 */
export type SortCompareFn<TItem = unknown> = (a: TItem, b: TItem, direction: 'asc' | 'desc') => number;
/**
 * A callback function that extracts the display value from a data item for a column.
 * Used as a programmatic alternative to a dot-separated `path` string.
 *
 * @param item - The data item for the current row.
 * @returns The extracted value to display in the cell.
 *
 * @public
 */
export type ValueGetterFn<TItem = unknown> = (item: TItem) => unknown;
/**
 * A type that represents either a dot-separated string path or a value getter function for extracting cell values.
 * This is used in the `pathFn` property of column definitions to specify how to retrieve the value to display in a cell.
 *
 * @public
 */
export type PathFn<TItem = unknown> = string | ValueGetterFn<TItem>;
//# sourceMappingURL=CellTemplateFunction.d.ts.map