import { type Writable } from 'svelte/store'; import type { NewTablePropSet, TablePlugin } from '../types/TablePlugin.js'; /** * Configuration options for the addHiddenColumns plugin. */ export interface HiddenColumnsConfig { /** Initial list of column IDs to hide. */ initialHiddenColumnIds?: string[]; } /** * State exposed by the addHiddenColumns plugin. */ export interface HiddenColumnsState { /** Writable store containing the list of hidden column IDs. */ hiddenColumnIds: Writable; } /** * Creates a hidden columns plugin that enables showing/hiding table columns. * * @template Item - The type of data items in the table. * @param config - Configuration options. * @returns A TablePlugin that provides column visibility control. * @example * ```typescript * const table = createTable(data, { * hide: addHiddenColumns({ * initialHiddenColumnIds: ['internalId', 'createdAt'] * }) * }) * * // Hide/show columns dynamically * const { hiddenColumnIds } = table.pluginStates.hide * hiddenColumnIds.update(ids => [...ids, 'newColumn']) * ``` */ export declare const addHiddenColumns: ({ initialHiddenColumnIds }?: HiddenColumnsConfig) => TablePlugin, NewTablePropSet>;