<?php

namespace Kylin\Excel\Concerns;

/**
 * 事件注册接口
 * 
 * 实现此接口的导入/导出类可以注册事件监听器
 * 用于在导入导出过程的特定节点执行自定义逻辑
 */
interface WithEvents
{
    /**
     * 注册事件监听器
     * 
     * 返回事件监听器数组，键为事件名，值为处理函数
     * 
     * @return array 事件监听器数组
     * 
     * @example
     * public function registerEvents(): array
     * {
     *     return [
     *         BeforeImport::class => function(BeforeImport $event) {
     *             // 导入前的处理
     *         },
     *         AfterImport::class => function(AfterImport $event) {
     *             // 导入后的处理
     *         },
     *     ];
     * }
     */
    public function registerEvents(): array;
}
