import { OnModuleInit } from '@nestjs/common';
import { StorageDriver, StorageStats } from './interfaces/storage.interface';
import { TelescopeEntry, TelescopeEntryFilter, TelescopeEntryResult } from '../core/interfaces/telescope-entry.interface';
import { TelescopeConfig } from '../core/interfaces/telescope-config.interface';
export declare class StorageManagerService implements StorageDriver, OnModuleInit {
    private readonly config;
    private readonly logger;
    private drivers;
    private primaryDriver;
    private fallbackDriver?;
    private healthStatus;
    constructor(config: TelescopeConfig);
    onModuleInit(): Promise<void>;
    private initializeDrivers;
    store(entry: TelescopeEntry): Promise<void>;
    storeBatch(entries: TelescopeEntry[]): Promise<void>;
    find(filter?: TelescopeEntryFilter): Promise<TelescopeEntryResult>;
    findById(id: string): Promise<TelescopeEntry | null>;
    delete(id: string): Promise<boolean>;
    clear(): Promise<void>;
    prune(olderThan: Date): Promise<number>;
    getStats(): Promise<StorageStats>;
    private executeWithFallback;
    checkAllDriversHealth(): Promise<void>;
    private checkDriverHealth;
    private startHealthChecks;
    getDriverHealth(): Record<string, boolean>;
    getDetailedStats(): Promise<{
        primary: string;
        fallback?: string;
        health: Record<string, boolean>;
        stats: StorageStats;
    }>;
    getPrimaryDriver(): StorageDriver;
    getFallbackDriver(): StorageDriver | undefined;
    getAvailableDrivers(): string[];
    switchPrimaryDriver(driverName: string): Promise<void>;
    cleanup(): Promise<void>;
}
