/**
 * 行选择插件
 *
 * 作为行选择的**单一来源**，提供全部选择能力：
 * - 单选 / 多选
 * - 全选 / 半选态
 * - 跨页保留选中
 * - 事件总线通知（ROW_SELECT / CELL_CLEAR）
 *
 * 数据源口径统一为当前**可见数据**（筛选后），由调用方通过
 * pipeline.setContext('visibleData', ...) 预注入。
 */
import type { CnAiListEventNamesMap } from '../../../../../../../cn-ai-agent/constants/event-constants';
import { Pipeline } from '../../pipeline';
import { TablePipelineData, TablePipelineConfig } from '../../pipeline/types';
import type { PrimaryKeyType } from '../../../../../../../cn-ai-table/view/utils/primary-key';
export interface RowSelectionPluginOptions {
    enabled: boolean;
    selectionType: 'single' | 'multiple';
    /** 当前选中的行 key，统一为 string | number；比较走 isSameRowKey 兼容上下游类型差异 */
    selectedKeys: Array<string | number>;
    primaryKey: PrimaryKeyType;
    /** 当前可见数据（筛选后），全选范围以此为准 */
    dataSource: any[];
    setSelectKeys?: (...args: any[]) => void;
    /** 禁用行主键集合（保持原始类型） */
    disabledRowKeys: Set<any>;
    /** 多实例隔离：与 CnAiTable 的 `id` 对应的事件名集合 */
    eventNames: CnAiListEventNamesMap;
}
export declare function rowSelectionPlugin(options: RowSelectionPluginOptions): (pipeline: Pipeline<TablePipelineData, TablePipelineConfig>) => Pipeline<TablePipelineData, TablePipelineConfig>;
