/**
 * YahooFinanceService — fetches daily price data and asset metadata from
 * Yahoo Finance via the `yahoo-finance2` npm package, caching results in
 * Cloudflare KV.
 *
 * Cache key patterns (unchanged from the previous Alpha Vantage backend so
 * already-warm cache entries remain valid):
 *   price:{TICKER}:{YYYY-MM-DD}  — full daily OHLCV series, TTL 24h
 *   meta:{TICKER}                — sector, market cap, name, TTL 7 days
 *
 * Public surface mirrors the old AlphaVantageService so call sites in
 * src/tools/ are drop-in compatible: fetchDailyPrices, fetchAssetMetadata,
 * fetchMultiplePrices.
 *
 * Errors propagate as DataFetchError; callers handle fallbacks.
 */
export interface YahooFinanceEnv {
    PRICE_CACHE: KVNamespace;
}
export interface PricePoint {
    date: string;
    open: number;
    high: number;
    low: number;
    close: number;
    volume: number;
}
export interface AssetMetadata {
    ticker: string;
    name: string;
    sector: string;
    marketCap: number;
    exchange: string;
    currency: string;
    description: string;
}
export declare class YahooFinanceService {
    private readonly kv;
    private readonly client;
    constructor(env: YahooFinanceEnv);
    /**
     * Fetch daily adjusted close prices for `ticker` going back `days` trading
     * days. Returns an array sorted oldest-first.
     */
    fetchDailyPrices(ticker: string, days: number): Promise<PricePoint[]>;
    /**
     * Fetch sector, market cap, and name for `ticker`.
     * Pulls the `assetProfile`, `summaryDetail`, and `price` modules from
     * Yahoo's quoteSummary endpoint. Cache TTL 7 days.
     *
     * Yahoo's metadata endpoint requires a crumb cookie; if that lookup fails
     * (network, geo-block, schema drift) we fall back to a minimal record so
     * sector-exposure can still report "Unknown" without taking the whole
     * tool down.
     */
    fetchAssetMetadata(ticker: string): Promise<AssetMetadata>;
    /**
     * Fetch prices for multiple tickers in parallel.
     * Returns a map of ticker -> PricePoint[].
     */
    fetchMultiplePrices(tickers: string[], days: number): Promise<Record<string, PricePoint[]>>;
}
//# sourceMappingURL=yahoo-finance.d.ts.map