import type { IStockPrice } from './stockprice.js';
import type { IStockFundamentals } from './fundamentals.js';
/**
 * Combined stock data with price and fundamentals
 * All calculated metrics (market cap, P/E, P/B) are automatically included
 */
export interface IStockData {
    /** Stock ticker symbol */
    ticker: string;
    /** Price information */
    price: IStockPrice;
    /** Fundamental data (optional - may not be available for all stocks) */
    fundamentals?: IStockFundamentals;
    /** When this combined data was fetched */
    fetchedAt: Date;
}
/**
 * Configuration for StockDataService
 */
export interface IStockDataServiceConfig {
    /** Cache configuration */
    cache?: {
        /** TTL for price data (default: 24 hours) */
        priceTTL?: number;
        /** TTL for fundamentals data (default: 90 days) */
        fundamentalsTTL?: number;
        /** Max cache entries (default: 10000) */
        maxEntries?: number;
    };
    /** Provider timeouts */
    timeout?: {
        /** Timeout for price providers (default: 10000ms) */
        price?: number;
        /** Timeout for fundamentals providers (default: 30000ms) */
        fundamentals?: number;
    };
}
/**
 * Request type for getting complete stock data
 */
export interface ICompleteStockDataRequest {
    ticker: string;
    /** Whether to include fundamentals (default: true) */
    includeFundamentals?: boolean;
    /** Whether to enrich fundamentals with price calculations (default: true) */
    enrichFundamentals?: boolean;
}
/**
 * Batch request for multiple stocks
 */
export interface ICompleteStockDataBatchRequest {
    tickers: string[];
    /** Whether to include fundamentals (default: true) */
    includeFundamentals?: boolean;
    /** Whether to enrich fundamentals with price calculations (default: true) */
    enrichFundamentals?: boolean;
}
