import { InjectionKey, App } from 'vue';
/**
 * 事件映射类型
 */
export type EventMap = Record<string, (...args: any[]) => void>;
/**
 * 事件总线配置
 */
export interface EventBusConfig<T extends EventMap> {
    name: string;
    defaultHandlers?: T;
    strict?: boolean;
}
/**
 * 创建类型安全的事件总线
 * @param config 配置项
 */
export declare function createEventBus<T extends EventMap>(config: string | EventBusConfig<T>): {
    /**
     * 在顶层组件中提供事件处理器
     */
    provideEvents(handlers: T, app?: App): void;
    /**
     * 在子组件中注入事件处理器
     */
    useEvents(): T;
    /**
     * 获取注入键（用于高级场景）
     */
    getKey(): InjectionKey<T>;
};
