import { Room } from 'livekit-client';
import { VoxketEventEmitter } from './event-emitter';
import { ChatManager } from './chat-manager';
import { AgentManager } from './agent-manager';
import { VoxketEvents } from '../types/core';
/**
 * StreamHandlerManager
 *
 * Manages all text and byte stream handlers including:
 * - Chat message streams (lk.chat)
 * - Transcription streams (lk.transcription)
 * - Agent state change streams
 * - Tool execution streams
 * - Image attachment streams
 * - Custom event emitter streams
 * - Suggested response streams
 */
export declare class StreamHandlerManager {
    private room;
    private eventEmitter;
    private chatManager;
    private agentManager;
    private textStreamHandlersRegistered;
    private _eventEmitters;
    constructor(eventEmitter: VoxketEventEmitter<VoxketEvents>, chatManager: ChatManager, agentManager: AgentManager);
    /**
     * Set the room instance for stream handling
     * Automatically registers handlers when room is set and not already registered
     */
    setRoom(room: Room | null): void;
    /**
     * Check if stream handlers are registered
     */
    areHandlersRegistered(): boolean;
    /**
     * Reset handlers registration flag
     */
    resetHandlersFlag(): void;
    /**
     * Setup all text stream handlers
     */
    setupTextStreamHandlers(): void;
    /**
     * Register chat message handler (lk.chat)
     */
    private registerChatHandler;
    /**
     * Register transcription handler (lk.transcription)
     */
    private registerTranscriptionHandler;
    /**
     * Register suggested response handler
     */
    private registerSuggestedResponseHandler;
    /**
     * Register agent state change handler
     */
    private registerAgentStateHandler;
    /**
     * Register function tools execution handler
     */
    private registerFunctionToolsHandler;
    /**
     * Register image text stream handler
     */
    private registerImageTextStreamHandler;
    /**
     * Register image byte stream handler
     */
    private registerImageByteStreamHandler;
    /**
     * Register handlers for common topics
     */
    private registerCommonTopicHandlers;
    /**
     * Register wildcard handler for unhandled topics
     */
    private registerWildcardHandler;
    /**
     * Register a custom event emitter for a specific topic
     */
    registerEventEmitter(topic: string, handler: (data: string) => void): void;
    /**
     * Get all registered event emitters
     */
    getRegisteredEventEmitters(): string[];
    /**
     * Check if an event emitter is registered for a topic
     */
    hasEventEmitter(topic: string): boolean;
}
