import { AthenaTableActionFeedbackConfig } from './table-action-feedback.js'; export type AthenaTableActionKind = "copy" | "download" | "href" | "lightbox"; export type AthenaTableActionIconName = "copy" | "eye" | "link" | "none" | "pencil" | "trash"; export type AthenaTableActionToneName = "default" | "danger" | "success" | "warning"; /** * JSON-serializable row-action definition for builders, presets, and codegen. * Materialize with {@link toTableRowActions}. */ export interface AthenaTableActionConfig { feedback?: AthenaTableActionFeedbackConfig; icon: AthenaTableActionIconName; id: string; kind: AthenaTableActionKind; label: string; openInNewTab: boolean; template: string; tone: AthenaTableActionToneName; /** Column id or value key the template reads from. */ valueColumnKey: string; } export type AthenaTableActionConfigField = keyof AthenaTableActionConfig; export declare const DEFAULT_ATHENA_TABLE_ACTION_ICON: AthenaTableActionIconName; export declare const DEFAULT_ATHENA_TABLE_ACTION_TONE: AthenaTableActionToneName; /** * Normalize partial / imported action config into a complete definition. */ export declare function normalizeAthenaTableActionConfig(action?: Partial): AthenaTableActionConfig; export declare function createDefaultAthenaTableActionConfig(input?: Partial): AthenaTableActionConfig; /** * Next stable id like `action_1`, `action_2`, avoiding collisions. */ export declare function nextAthenaTableActionId(existing: readonly { id: string; }[]): string; export declare function appendAthenaTableAction(actions: readonly AthenaTableActionConfig[], partial?: Partial): AthenaTableActionConfig[]; export type UpdateAthenaTableActionPatch = Partial | { field: AthenaTableActionConfigField; value: boolean | string; }; export declare function updateAthenaTableAction(actions: readonly AthenaTableActionConfig[], actionId: string, patch: UpdateAthenaTableActionPatch): AthenaTableActionConfig[]; export declare function removeAthenaTableAction(actions: readonly AthenaTableActionConfig[], actionId: string): AthenaTableActionConfig[]; /** * Resolve a builder valueColumnKey through an id/key map when present. */ export declare function resolveAthenaTableActionValueColumnKey(valueColumnKey: string, columnIdByValue?: ReadonlyMap | Readonly> | null): string;