/**
 * 拖拽写回策略
 *
 * 将"排序结果计算"与"排序结果落盘/持久化"拆开：
 * 1. commitColumnOrder  —— 更新视图列顺序（持久化到 viewConfig）
 * 2. commitRowOrderLocal —— 更新本地行数据顺序
 * 3. commitGroupedRowMove —— 跨组拖拽（改记录分组字段，远端回写）
 *
 * 组件层只负责收集参数、调用对应 committer。
 * 这样做的好处：纯计算（sortColumns/sortRows）可独立单测，写回副作用集中在此处。
 */
import type { PrimaryKeyType } from '../../../../../../cn-ai-table/view/utils/primary-key';
/**
 * dataModel 的最小依赖切片
 * 使用结构化类型而非直接依赖完整 DataModel，便于测试时 mock 与解耦。
 */
interface DataModelLike {
    /** 当前表格原始行数据 */
    rawData: any[];
    /** 覆盖式更新行数据（行拖拽场景下用于本地重排） */
    setRawData: (data: any[]) => void;
    /** 更新视图配置；persist=true 表示同步落库 */
    setViewConfig: (viewId: string, config: any, persist?: boolean) => void;
}
export interface CommitColumnOrderParams {
    dataModel: DataModelLike;
    /** 目标视图 ID，列顺序按视图维度持久化 */
    viewId: string;
    /** 拖拽前的列顺序快照（含所有列，包括冻结列） */
    columnOrder: ReadonlyArray<string | number>;
    /** 被拖拽列的 ID */
    activeId: string | number;
    /** 拖拽落点所在列的 ID */
    overId: string | number;
    /** 冻结列 ID 列表；用于禁止跨越冻结区边界的非法拖拽 */
    pinnedColumnIds?: ReadonlyArray<string | number>;
}
export interface CommitRowOrderLocalParams {
    dataModel: DataModelLike;
    /** 被拖拽行的主键值 */
    activeId: string | number;
    /** 拖拽落点所在行的主键值 */
    overId: string | number;
    /** 主键定义；rawData 中行的标识依据 */
    primaryKey: PrimaryKeyType;
}
/**
 * 列拖拽写回：计算新顺序 → 持久化到 viewConfig
 *
 * @returns true 表示已写回；false 表示计算失败（如非法位置），调用方无需后续动作
 */
export declare function commitColumnOrder(params: CommitColumnOrderParams): boolean;
/**
 * 普通行拖拽写回：计算新顺序 → 仅本地更新 rawData
 *
 * 注意：此函数不做远端持久化，仅适用于无分组、行顺序仅在前端维护的场景；
 * 跨分组拖拽请使用 commitGroupedRowMove。
 */
export declare function commitRowOrderLocal(params: CommitRowOrderLocalParams): boolean;
export {};
