import { AthenaReadQueryDefinition, AthenaReadQueryFilter, AthenaReadQueryMode, AthenaReadQueryOrderByInput } from '../../../../athena/table-query-executor.js'; import { AthenaTableColumn } from '../core/data-table.js'; import { AthenaTableViewColumn, ToAthenaTableColumnsOptions } from '../utils/to-athena-table-columns.js'; import { UseAthenaQueryOptions, UseAthenaQueryResult } from './use-athena-query.js'; export type UseAthenaTableViewOptions = Record> = Omit & { /** * Presentation-aware columns. Presentation fields are stripped before the * portable read query runs and mapped into {@link AthenaTableColumn}s. */ columns: readonly AthenaTableViewColumn[]; table: string; schema?: string; countColumn?: string; filters?: readonly AthenaReadQueryFilter[]; limit?: number; mode?: AthenaReadQueryMode; orderBy?: AthenaReadQueryOrderByInput; rowKey?: string; defaultRender?: ToAthenaTableColumnsOptions["defaultRender"]; }; export type UseAthenaTableViewResult = Record> = UseAthenaQueryResult & { /** Columns ready for {@link AthenaTable}. */ columns: AthenaTableColumn[]; /** Stripped portable query definition used by {@link useAthenaQuery}. */ query: AthenaReadQueryDefinition; }; /** * Compose portable Athena table data + presentation columns. * * - Builds a stripped {@link AthenaReadQueryDefinition} via {@link toReadQueryColumns} * - Loads rows with {@link useAthenaQuery} * - Maps view columns with {@link toAthenaTableColumns} * * Prefer this for AthenaTable surfaces. Keep {@link useAthenaQuery} for KPIs, * charts, or non-table consumers of the read-query contract. */ export declare function useAthenaTableView = Record>(options: UseAthenaTableViewOptions): UseAthenaTableViewResult;