import * as React from 'react';
import { buildCnAiListEventNames, normalizeCnAiListInstanceKey, EVENT_NAMES, } from '../constants/event-constants';
const defaultValue = {
    instanceKey: normalizeCnAiListInstanceKey(undefined),
    eventNames: EVENT_NAMES,
};
export const CnAiListEventContext = React.createContext(defaultValue);
/**
 * 当前 AI 列表实例在 `@ice/stark-data` 总线上的事件频道名集合。
 * 须在由 `CnAiListEventProvider` 或根组件（CnAiTable / CnAiAgent / CnAiFilter）包裹的子树内使用；未包裹时与历史单实例行为一致。
 */
export function useCnAiListEventNames() {
    return React.useContext(CnAiListEventContext).eventNames;
}
/** 当前子树对应的事件实例 key（与 `id` 规范化后一致） */
export function useCnAiListInstanceKey() {
    return React.useContext(CnAiListEventContext).instanceKey;
}
/**
 * 为子树提供按 `instanceId` 隔离的事件频道；不传或空串时使用默认命名空间（兼容单实例）。
 */
export function CnAiListEventProvider({ instanceId, children }) {
    const value = React.useMemo(() => {
        const instanceKey = normalizeCnAiListInstanceKey(instanceId);
        return {
            instanceKey,
            eventNames: buildCnAiListEventNames(instanceKey),
        };
    }, [instanceId]);
    return React.createElement(CnAiListEventContext.Provider, { value: value }, children);
}
