import { OnModuleInit } from '@nestjs/common';
import { TelescopeEntry, TelescopeEntryFilter, TelescopeEntryResult } from '../interfaces/telescope-entry.interface';
import { TelescopeConfig } from '../interfaces/telescope-config.interface';
import { EntryManagerService } from './entry-manager.service';
import { StorageService } from '../../storage/storage.service';
import { CircuitBreakerService } from './circuit-breaker.service';
export declare class TelescopeService implements OnModuleInit {
    private readonly entryManager;
    private readonly storageService;
    private readonly circuitBreakerService;
    private readonly config;
    private readonly logger;
    private readonly circuitBreakers;
    constructor(entryManager: EntryManagerService, storageService: StorageService, circuitBreakerService: CircuitBreakerService, config: TelescopeConfig);
    onModuleInit(): Promise<void>;
    private initializeCircuitBreakers;
    record(entry: TelescopeEntry): Promise<void>;
    recordBatch(entries: TelescopeEntry[]): Promise<void>;
    find(filter?: TelescopeEntryFilter): Promise<TelescopeEntryResult>;
    findById(id: string): Promise<TelescopeEntry | null>;
    getEntries(filter?: TelescopeEntryFilter, startDate?: Date, endDate?: Date): Promise<TelescopeEntry[]>;
    clear(): Promise<void>;
    prune(): Promise<number>;
    getStats(): Promise<any>;
    getCircuitBreakerStats(): Record<string, any>;
    resetCircuitBreaker(type: 'entryProcessing' | 'batchProcessing' | 'storage' | 'queries'): boolean;
    forceOpenCircuitBreaker(type: 'entryProcessing' | 'batchProcessing' | 'storage' | 'queries'): boolean;
    forceCloseCircuitBreaker(type: 'entryProcessing' | 'batchProcessing' | 'storage' | 'queries'): boolean;
}
