import { EventEmitter } from 'events';
import { StreamServiceSdk } from '../services/stream.service.sdk';
import { ChannelServiceSdk } from '../services/channel.service.sdk';
import { StreamMetrics } from '../types/monitoring';
export interface DataManagerConfig {
    refreshInterval: number;
    retryAttempts: number;
    retryDelay: number;
    channels: string[];
    enableStreaming: boolean;
    bufferSize: number;
}
export interface DataCollectionResult {
    success: boolean;
    data?: StreamMetrics[];
    error?: Error | undefined;
    timestamp: Date;
    duration: number;
}
export declare class DataManager extends EventEmitter {
    private streamService;
    private _channelService;
    private config;
    private isRunning;
    private refreshTimer?;
    private channelCache;
    private lastCollectionTime;
    constructor(streamService: StreamServiceSdk, channelService: ChannelServiceSdk, config: DataManagerConfig);
    start(): void;
    stop(): void;
    addChannel(channelId: string): void;
    removeChannel(channelId: string): void;
    getChannelData(channelId: string): StreamMetrics | null;
    getAllChannelsData(): StreamMetrics[];
    collectData(): Promise<DataCollectionResult>;
    private collectChannelData;
    private scheduleNextCollection;
    setRefreshInterval(intervalMs: number): void;
    getConfig(): DataManagerConfig;
    getStats(): {
        isRunning: boolean;
        channelCount: number;
        lastCollectionTime: Date;
        cacheStats: {
            totalEntries: number;
            activeChannels: number;
            errorChannels: number;
        };
    };
    clearCache(): void;
    destroy(): void;
}
//# sourceMappingURL=data-manager.d.ts.map