/**
 * Hook Events
 *
 * EventEmitter-based hook system for PreCompact, Notification, and PermissionRequest events.
 * Singleton pattern for global event coordination.
 */
import { EventEmitter } from 'events';
export interface PreCompactContext {
    messageCount: number;
    tokenCount: number;
}
export type NotificationType = 'permission_prompt' | 'idle_prompt' | 'auth_success' | 'elicitation_dialog';
export interface NotificationPayload {
    type: NotificationType;
    message: string;
}
export interface PermissionRequestPayload {
    tool: string;
    input: string;
}
export interface PermissionResponse {
    action: 'allow' | 'deny' | 'ask';
    updatedPermissions?: Record<string, string>;
}
export declare class HookEventEmitter extends EventEmitter {
    private static instance;
    constructor();
    static getInstance(): HookEventEmitter;
    static resetInstance(): void;
    emitPreCompact(context: PreCompactContext): void;
    emitNotification(notification: NotificationPayload): void;
    emitPermissionRequest(request: PermissionRequestPayload): PermissionResponse;
    onPreCompact(handler: (context: PreCompactContext) => void): void;
    onNotification(handler: (notification: NotificationPayload) => void): void;
    onPermissionRequest(handler: (request: PermissionRequestPayload) => PermissionResponse): void;
}
