import { ColumnConfig, ColumnInternal, InternalGrid } from '../types';
/**
 * Parse `<tbw-grid-column>` elements from the host light DOM into column config objects,
 * capturing template elements for later cloning / compilation.
 */
export declare function parseLightDomColumns(host: HTMLElement): ColumnInternal[];
/**
 * Merge programmatic columns with light DOM columns by field name, allowing DOM-provided
 * attributes / templates to supplement (not overwrite) programmatic definitions.
 * Any DOM columns without a programmatic counterpart are appended.
 * When multiple DOM columns exist for the same field (e.g., separate renderer and editor),
 * their properties are merged together.
 */
export declare function mergeColumns(programmatic: ColumnConfig[] | undefined, dom: ColumnConfig[] | undefined): ColumnInternal[];
/**
 * Safely add a token to an element's `part` attribute (supporting the CSS ::part API)
 * without duplicating values. Falls back to string manipulation if `el.part` API isn't present.
 */
export declare function addPart(el: HTMLElement, token: string): void;
/**
 * Measure rendered header + visible cell content to assign initial pixel widths
 * to columns when in `content` fit mode. Runs only once unless fit mode changes.
 */
export declare function autoSizeColumns(grid: InternalGrid): void;
/**
 * Compute and apply the CSS grid template string that drives column layout.
 * Uses `fr` units for flexible (non user-resized) columns in stretch mode, otherwise
 * explicit pixel widths or auto sizing.
 */
export declare function updateTemplate(grid: InternalGrid): void;
//# sourceMappingURL=columns.d.ts.map