/**
 * OutputCollector - Collects game output for testing
 *
 * Implements IGameOutput interface to capture events, questions,
 * and player updates instead of sending them via WebSocket.
 */
import type { IGameOutput, GameEvent } from '../game/engine/GameEngine.js';
import type { Player } from '../models/index.js';
export interface CollectedEvent {
    timestamp: Date;
    event: GameEvent;
}
export interface CollectedQuestion {
    timestamp: Date;
    id: string;
    message: string;
    answers: Array<{
        option: string;
        data?: string;
    }>;
    pending: boolean;
}
export interface CollectedUpdate {
    timestamp: Date;
    data: Record<string, unknown>;
}
export declare class OutputCollector implements IGameOutput {
    events: CollectedEvent[];
    questions: CollectedQuestion[];
    playerUpdates: Player[];
    dictUpdates: CollectedUpdate[];
    sendEventMessage(event: GameEvent): Promise<void>;
    sendUserInfo(player: Player): Promise<void>;
    sendDict(data: Record<string, unknown>): Promise<void>;
    getEvents(): CollectedEvent[];
    getQuestions(): CollectedQuestion[];
    getPendingQuestions(): CollectedQuestion[];
    getLastEvent(): CollectedEvent | undefined;
    getLastQuestion(): CollectedQuestion | undefined;
    hasEventWithId(id: string): boolean;
    hasEventWithText(text: string): boolean;
    markQuestionAnswered(questionId: string): void;
    clear(): void;
    getStats(): Record<string, number>;
}
//# sourceMappingURL=OutputCollector.d.ts.map