import { EventEmitter } from 'events';
import { ConnectionManager } from './ConnectionManager';
import { ClientConfig, BotUsage } from '../types/index';
/**
 * Objetivo 3: Reportar dados sobre o consumo do bot pelo usuário
 */
export declare class TelemetryReporter extends EventEmitter {
    private config;
    private connectionManager;
    private usageQueue;
    private reportInterval;
    private isActive;
    private stats;
    constructor(config: ClientConfig);
    /**
     * Iniciar serviço de telemetria
     */
    start(connectionManager?: ConnectionManager): Promise<void>;
    /**
     * Definir o gerenciador de conexão
     */
    setConnectionManager(connectionManager: ConnectionManager): void;
    /**
     * Parar serviço de telemetria
     */
    stop(): Promise<void>;
    /**
     * Reportar uso do bot
     */
    reportUsage(usage: BotUsage): Promise<void>;
    /**
     * Obter estatísticas de uso
     */
    getStats(timeRange?: {
        start: number;
        end: number;
    }): Promise<any>;
    /**
     * Obter fila de uso pendente
     */
    getPendingUsage(): BotUsage[];
    /**
     * Forçar envio dos dados na fila
     */
    forceFlush(): Promise<void>;
    private startReportInterval;
    private stopReportInterval;
    private flushQueue;
    private updateStats;
    private combineStats;
}
