import { PriceData, PriceProvider } from '../types.js';
export interface AggregatorOptions {
    providers?: PriceProvider[];
    cacheOptions?: {
        storage?: 'memory' | 'localStorage' | 'indexedDB';
        ttl?: number;
    };
    rateLimitOptions?: {
        maxRequests?: number;
        windowMs?: number;
    };
    consensusThreshold?: number;
}
export declare class DecentralizedAggregator implements PriceProvider {
    private providers;
    private rateLimiter;
    private cache;
    private consensusThreshold;
    constructor(options?: AggregatorOptions);
    private selectBestStorage;
    fetchPrice(symbol: string, currency?: string): Promise<PriceData>;
    fetchMultiplePrices(symbols: string[], currency?: string): Promise<PriceData[]>;
    private fetchFromProviders;
    private calculateConsensusPrice;
    private groupBySymbol;
    addProvider(provider: PriceProvider): void;
    removeProvider(index: number): void;
    clearCache(): Promise<void>;
    resetRateLimiter(): void;
}
