/**
 * 固定列模型
 *
 * 以 pinnedFieldIds 为唯一一手来源，派生出表头 / 表体 / 分组头共用的
 * pinned 判定、偏移量、z-index 等数据，避免各组件独立循环计算。
 */
export interface PinnedColumnModel {
    /** 固定列 ID 列表（归一化为 string） */
    pinnedFieldIds: string[];
    /** 固定列数量（派生自 pinnedFieldIds.length） */
    pinnedColumnsCount: number;
    /** 每个固定列的 sticky left 偏移（key 为归一化 ID） */
    pinnedOffsets: Record<string, number>;
    /** 所有固定列 + 功能列的总宽度 */
    totalPinnedWidth: number;
    /** 判断某列是否固定 */
    isPinned: (fieldId: string | number) => boolean;
    /** 获取固定列的 z-index（越靠前越高） */
    getPinnedZIndex: (fieldId: string | number, base: number) => number;
    /** 判断某列是否为最后一个固定列 */
    isLastPinned: (fieldId: string | number) => boolean;
}
/**
 * 从 pinnedFieldIds + columnOrder + widthMap 派生完整的固定列模型
 *
 * @param columnOrder  列顺序（包含所有可见列 ID）
 * @param pinnedFieldIds  固定字段 ID 列表
 * @param widthMap  列宽映射表
 * @param actionColumnWidth  功能列宽度（拖拽把手 + 序号/多选框）
 */
export declare function buildPinnedModel(columnOrder: ReadonlyArray<string | number>, pinnedFieldIds: ReadonlyArray<string | number>, widthMap: Record<string, number>, actionColumnWidth: number): PinnedColumnModel;
/**
 * 从旧的 pinnedColumnsCount 推导 pinnedFieldIds（兼容历史数据）
 */
export declare function derivePinnedFieldIdsFromCount(columnOrder: ReadonlyArray<string | number>, count: number): string[];
/**
 * 从 viewConfig 中解析 pinnedFieldIds，自动兼容旧的 pinnedColumnsCount
 */
export declare function resolvePinnedFieldIds(viewConfig: {
    custom?: {
        pinnedFieldIds?: string[];
        pinnedColumnsCount?: number;
    };
}, columnOrder: ReadonlyArray<string | number>): string[];
