import { ReactNode } from 'react'; import { AthenaTableFlatRow } from '../hooks/use-athena-query.js'; import { TableRowActionItem } from '../rows/table-row-actions-menu.js'; import { AthenaTableActionConfig } from './table-action-config.js'; export interface ToTableRowActionsOptions { /** Token treated as empty after template resolution. Default `"-"`. */ emptyValueToken?: string; /** Handler for `kind: "lightbox"` (and custom preview). */ onLightbox?: (value: string) => void; /** Resolve named icons to React nodes; omit for text-only menus. */ resolveIcon?: (name: AthenaTableActionConfig["icon"]) => ReactNode | undefined; /** * Map config valueColumnKey → flat row key (e.g. runtime column key). * Defaults to the trimmed valueColumnKey. */ resolveValueKey?: (valueColumnKey: string) => string; } /** * Materialize serializable action configs into live menu items for one row. * * Uses {@link createCopyTableRowAction}, {@link createDownloadTableRowAction}, * and {@link createHrefTableRowAction} for standard kinds. */ export declare function toTableRowActions(actions: readonly AthenaTableActionConfig[], row: AthenaTableFlatRow | (Record & { __rowKey?: string; }), options?: ToTableRowActionsOptions): TableRowActionItem[];