import { type FormattersPipelineRuntimeField, type FormattersPipelineRuntimeFields } from "@ryuzaki13/react-foundation-lib/formatters";
import { type TableColumnDef } from "@ryuzaki13/react-foundation-lib/table";
/**
 * Снимок форматирующих данных, вычисленный из набора колонок.
 *
 * Используется и в `Table`, и в `TreeTable`, чтобы не дублировать
 * предкомпиляцию runtime и правила приоритета кастомного `cell`.
 */
export interface TableFormattingSnapshot {
    /**
     * Скомпилированный runtime по идентификаторам колонок.
     */
    runtimeByColumnId: FormattersPipelineRuntimeFields<FormattersPipelineRuntimeField>;
    /**
     * Идентификаторы колонок с явным кастомным `cell`.
     */
    customCellColumnIds: Set<string>;
}
/**
 * Определяет стабильный идентификатор колонки для pipeline runtime.
 *
 * Порядок приоритета:
 * 1. `column.id`
 * 2. строковый `accessorKey`
 */
export declare function resolveTableFormattingColumnId<TData extends object>(column: TableColumnDef<TData>): string | undefined;
/**
 * Проверяет, задан ли у колонки явный кастомный `cell`.
 */
export declare function hasTableColumnCustomCellRenderer<TData extends object>(column: TableColumnDef<TData>): boolean;
/**
 * Собирает snapshot pipeline runtime по описанию колонок.
 */
export declare function buildTableFormattingSnapshot<TData extends object>(columns: readonly TableColumnDef<TData>[]): TableFormattingSnapshot;
/**
 * Определяет, должен ли компонент использовать pipeline runtime для ячейки.
 */
export declare function shouldUseTableFormatting(args: {
    columnId: string;
    runtimeByColumnId: FormattersPipelineRuntimeFields<FormattersPipelineRuntimeField>;
    customCellColumnIds: ReadonlySet<string>;
}): boolean;
//# sourceMappingURL=formatting.d.ts.map