/**
 * Response Waiter
 *
 * Waits for user responses with timeout, collecting from multiple channels.
 */
import { EventEmitter } from 'events';
export interface PendingResponse {
    id: string;
    question: string;
    channels: string[];
    timeoutMs: number;
    createdAt: Date;
    resolve: (response: string | null) => void;
}
export declare class ResponseWaiter extends EventEmitter {
    private pending;
    private timers;
    /**
     * Wait for a response from any channel
     */
    waitForResponse(id: string, question: string, channels: string[], timeoutMs?: number): Promise<string | null>;
    /**
     * Deliver a response
     */
    deliverResponse(id: string, response: string, channel: string): boolean;
    /**
     * Cancel a pending wait
     */
    cancel(id: string): boolean;
    /**
     * Get pending count
     */
    getPendingCount(): number;
    /**
     * List pending responses
     */
    listPending(): Array<{
        id: string;
        question: string;
        channels: string[];
        age: number;
    }>;
    /**
     * Cancel all pending
     */
    cancelAll(): void;
}
