import type { CellVal, ColumnFilter, DateTimeFormatMode, Label, RowData } from './index'; export declare const strip_html: (str: string) => string; export declare const discover_columns: (rows: RowData[]) => Label[]; export declare const MIDDLE_ELLIPSIS_MIN_LENGTH = 16; export declare const middle_ellipsis_parts: (text: string) => [string, string]; export declare const is_invalid: (val: unknown) => boolean; export declare const is_html_str: (val: unknown) => val is string; export declare const cell_text: (val: CellVal) => string; export declare function parse_numeric_val(val: CellVal): number | null; export type SortCriterion = { key: string; ascending: boolean; }; export declare function compare_rows(row1: RowData, row2: RowData, criteria: SortCriterion[]): number; export declare const row_matches_query: (row: RowData, query: string, { keys, fuzzy }?: { keys?: string[]; fuzzy?: boolean; }) => boolean; export declare const cell_matches_filter: (val: CellVal, filter: ColumnFilter) => boolean; export declare const CATEGORY_LIMIT = 40; type FilterPanel = { kind: `numeric` | `category` | `text`; options: string[]; }; export declare function column_filter_panel(col: Label, rows: RowData[], row_key: string, is_numeric: boolean): FilterPanel; export declare function with_numeric_bound(current: ColumnFilter | undefined, bound: `min` | `max`, raw: string): ColumnFilter | undefined; export declare function with_category_toggled(current: ColumnFilter | undefined, value: string, options: string[]): ColumnFilter | undefined; type DateTimeColumnKind = `date` | `time` | `datetime`; export declare const DATETIME_MODES_BY_KIND: Record; export declare const DATETIME_MODE_LABELS: Record; export declare const parse_datetime_val: (val: CellVal, col: Label) => number | null; export declare function infer_datetime_kind(col: Label, sample: CellVal[]): DateTimeColumnKind | null; export declare function format_datetime(timestamp: number, mode: DateTimeFormatMode, now_ms?: number): string; export {};