/**
 * React Hooks 支持
 * 提供便捷的 React 组件事件订阅能力
 */
import type { EventListener, EventListenerOptions } from './types';
import type { AppEventBus } from './AppEventBus';
/**
 * 使用事件总线的 Hook
 *
 * @param eventBus - 事件总线实例
 * @param event - 事件名称
 * @param listener - 事件监听器
 * @param options - 监听器选项
 *
 * @example
 * ```tsx
 * import { useAppEventBus } from '@vlian/framework';
 *
 * function MyComponent() {
 *   useAppEvent('user:login', (data, metadata) => {
 *     console.log('用户登录:', data);
 *   });
 *
 *   return <div>My Component</div>;
 * }
 * ```
 */
export declare function useAppEvent<T = unknown>(eventBus: AppEventBus, event: string, listener: EventListener<T>, options?: EventListenerOptions): void;
/**
 * 一次性事件订阅 Hook
 *
 * @param eventBus - 事件总线实例
 * @param event - 事件名称
 * @param listener - 事件监听器
 * @param options - 监听器选项
 */
export declare function useAppEventOnce<T = unknown>(eventBus: AppEventBus, event: string, listener: EventListener<T>, options?: Omit<EventListenerOptions, 'once'>): void;
/**
 * 创建事件发射器 Hook
 *
 * @param eventBus - 事件总线实例
 * @returns 事件发射函数
 *
 * @example
 * ```tsx
 * function MyComponent() {
 *   const emit = useAppEventEmitter(eventBus);
 *
 *   const handleClick = () => {
 *     emit('button:click', { buttonId: 'submit' });
 *   };
 *
 *   return <button onClick={handleClick}>Click</button>;
 * }
 * ```
 */
export declare function useAppEventEmitter(eventBus: AppEventBus): <T = unknown>(event: string, data?: T, metadata?: Partial<import("./types").EventMetadata>) => Promise<void>;
//# sourceMappingURL=hooks.d.ts.map