import { AthenaTableActionIconName, AthenaTableActionKind, AthenaTableActionToneName } from '../utils/table-action-config.js'; import { AthenaTableSortStrategyName } from '../utils/table-sort-strategies.js'; import { AthenaTableFormatOptions } from '../utils/table-value-formatters.js'; import { AthenaTableChipConfig } from '../utils/table-value-utils.js'; import { AthenaTableBuilderClientConfig, AthenaTableBuilderPackageVersions, AthenaTableDesktopBreakpoint, BuilderActionConfig, BuilderColumnConfig, BuilderFilterConfig, TableBuilderOrderByEntry, TableBuilderPreset, TableBuilderPresetAction, TableBuilderPresetColumn, TableBuilderPresetFilter, TableBuilderPresetMetadata, TableCatalogTable, TableColumnObjectPath } from './types.js'; export declare function buildTableBuilderPresetMetadata(payload: Omit, options?: { packageVersions?: AthenaTableBuilderPackageVersions; }): TableBuilderPresetMetadata; export declare function normalizeAction(action: Partial): BuilderActionConfig; export type ImportedTableBuilderPreset = Omit & { tableId?: string | TableBuilderPreset["table_id"]; table_id?: string | TableBuilderPreset["table_id"]; } & Record; export type ImportedPresetColumn = Partial & Record; export type ImportedPresetAction = Partial & Record; export type ImportedPresetFilter = Partial & Record; export declare function getImportedValue(record: Record, snakeKey: string, camelKey: string): unknown; export declare function getImportedString(record: Record, snakeKey: string, camelKey: string): string; export declare function getImportedBoolean(record: Record, snakeKey: string, camelKey: string, fallback: boolean): boolean; export declare function getImportedNumber(record: Record, snakeKey: string, camelKey: string, fallback: number): number; export declare function getImportedArray(record: Record, snakeKey: string, camelKey: string): T[]; export declare function parseTableObjectPath(value: unknown): { schema_name: string; table_name: string; } | null; export declare function parseTableColumnObjectPath(value: unknown): TableColumnObjectPath | null; export declare function tableObjectPathToId(value: unknown): string; export declare function tableCatalogToObjectPath(table: TableCatalogTable | null | undefined): { schema_name: string; table_name: string; } | undefined; export declare function tableColumnObjectPathToDisplayPath(value: unknown): string; export declare function toTranslationKeyPart(value: string): string; export declare function createColumnTranslationKey(column: BuilderColumnConfig): string; export declare function serializePresetAction(action: BuilderActionConfig): { feedback: import('../utils/table-action-feedback.js').AthenaTableActionFeedbackConfig | import('./types.js').BuilderActionFeedbackConfig | undefined; icon: AthenaTableActionIconName; id: string; kind: AthenaTableActionKind; label: string; open_in_new_tab: boolean; template: string; tone: AthenaTableActionToneName; value_column_key: string; }; export declare function serializePresetFilter(filter: BuilderFilterConfig): { column: string; id: string; operator: import('@xylex-group/athena').AthenaReadQueryFilterOperator | undefined; source_option_id: string; value: import('@xylex-group/athena').AthenaReadQueryFilterValue; }; export declare function serializePresetColumn(column: BuilderColumnConfig, index: number): TableBuilderPresetColumn; export declare function getImportedSortStrategy(record: Record): AthenaTableSortStrategyName | undefined; export declare function getImportedFormat(record: Record): AthenaTableFormatOptions | undefined; export declare function getImportedChip(record: Record): AthenaTableChipConfig | undefined; export declare function getImportedOrderBy(record: Record): TableBuilderOrderByEntry[]; export declare function getImportedQueryMode(record: Record): "findMany" | "select"; export declare function getImportedDesktopBreakpoint(record: Record): "auto" | "md" | "lg" | "xl"; export declare function getImportedOrderDirection(record: Record): "asc" | "desc"; export declare function getImportedEmptyStateMode(record: Record): "default" | "loading" | "short" | "custom" | "sentence"; export declare function normalizePresetColumn(column: ImportedPresetColumn): BuilderColumnConfig; export declare function normalizePresetColumns(columns: ImportedPresetColumn[]): BuilderColumnConfig[]; export declare function normalizePresetAction(action: ImportedPresetAction): BuilderActionConfig; export declare function normalizePresetFilter(filter: ImportedPresetFilter): { column: string; id: string; operator: BuilderFilterConfig["operator"]; sourceOptionId: string; value: BuilderFilterConfig["value"]; }; export interface BuildTableBuilderPresetInput { actions: readonly BuilderActionConfig[]; athenaConfig: Pick; columnSourceSchema: string; columnSourceTable: string; columns: readonly BuilderColumnConfig[]; customDescription: string; customTitle: string; desktopBreakpoint: AthenaTableDesktopBreakpoint; emptyStateMode: TableBuilderPreset["empty_state_mode"]; filters: readonly BuilderFilterConfig[]; orderByEntries: readonly TableBuilderOrderByEntry[]; orderColumnId: string; orderDirection: "asc" | "desc"; packageVersions?: AthenaTableBuilderPackageVersions; pageSize: number; queryLimit: number; queryMode: TableBuilderPreset["query_mode"]; selectedTable: TableCatalogTable | null | undefined; showActions: boolean; showPagination: boolean; showSummary: boolean; } export declare function buildTableBuilderPreset(input: BuildTableBuilderPresetInput): TableBuilderPreset;