import type { IStockProvider, IProviderConfig, IProviderRegistry } from './interfaces/provider.js';
import type { IStockPrice, IStockQuoteRequest, IStockBatchQuoteRequest } from './interfaces/stockprice.js';
export declare class StockPriceService implements IProviderRegistry {
    private providers;
    private cache;
    private logger;
    private cacheConfig;
    constructor(cacheConfig?: {
        ttl?: number;
        maxEntries?: number;
    });
    register(provider: IStockProvider, config?: IProviderConfig): void;
    unregister(providerName: string): void;
    getProvider(name: string): IStockProvider | undefined;
    getAllProviders(): IStockProvider[];
    getEnabledProviders(): IStockProvider[];
    getPrice(request: IStockQuoteRequest): Promise<IStockPrice>;
    getPrices(request: IStockBatchQuoteRequest): Promise<IStockPrice[]>;
    checkProvidersHealth(): Promise<Map<string, boolean>>;
    getProviderStats(): Map<string, {
        successCount: number;
        errorCount: number;
        lastError?: string;
        lastErrorTime?: Date;
    }>;
    clearCache(): void;
    setCacheTTL(ttl: number): void;
    private fetchWithRetry;
    private getCacheKey;
    private getFromCache;
    private addToCache;
}
