import { DateRange, IntradayData, EquityDetails, EquityTradeInfo, EquityHistoricalData, SeriesData, IndexDetails, EquityOptionChainData, IndexOptionChainData, CommodityOptionChainData, OptionChainContractInfo, EquityCorporateInfo, Glossary, HolidaysBySegment, MarketStatus, MarketTurnover, AllIndicesData, IndexNamesData, CircularsData, LatestCircularData, EquityMaster, PreOpenMarketData, MergedDailyReportsData, TechnicalIndicators, ChartingSymbolInfo, ChartingOHLCItem, ChartingOHLCResponse, EquityInfo, EquityMetadata, EquitySecurityInfo, EquityPriceInfo, EquityPreOpenMarket, EquityHistoricalInfo, EquityOptionChainItem, IndexEquityInfo, IndexRecords, CommodityRecords, Filtered, Holiday, MarketState, MarketCap, IndicativeNifty50, GiftNifty, Datum, PreOpenDetails, OptionsData, OptionsDetails } from './interface';
export declare enum ApiList {
    GLOSSARY = "/api/cmsContent?url=/glossary",
    HOLIDAY_TRADING = "/api/holiday-master?type=trading",
    HOLIDAY_CLEARING = "/api/holiday-master?type=clearing",
    MARKET_STATUS = "/api/marketStatus",
    MARKET_TURNOVER = "/api/market-turnover",
    ALL_INDICES = "/api/allIndices",
    INDEX_NAMES = "/api/index-names",
    CIRCULARS = "/api/circulars",
    LATEST_CIRCULARS = "/api/latest-circular",
    EQUITY_MASTER = "/api/equity-master",
    MARKET_DATA_PRE_OPEN = "/api/market-data-pre-open?key=ALL",
    MERGED_DAILY_REPORTS_CAPITAL = "/api/merged-daily-reports?key=favCapital",
    MERGED_DAILY_REPORTS_DERIVATIVES = "/api/merged-daily-reports?key=favDerivatives",
    MERGED_DAILY_REPORTS_DEBT = "/api/merged-daily-reports?key=favDebt"
}
export declare class NseIndia {
    private readonly baseUrl;
    private readonly cookieMaxAge;
    private readonly maxRetries;
    private readonly apiHeaders;
    private nseJar;
    private chartingJar;
    private nseClient;
    private chartingClient;
    private userAgent;
    private cookies;
    private cookieUsedCount;
    private cookieExpiry;
    private noOfConnections;
    private readonly chartingBaseUrl;
    private chartingCookies;
    private chartingCookieUsedCount;
    private chartingCookieExpiry;
    private chartingUserAgent;
    private preOpenCache?;
    private capitalMarketTypeCache?;
    private resetNseClient;
    private resetChartingClient;
    private invalidateNseSession;
    private invalidateChartingSession;
    private isAuthError;
    private toHttpError;
    private warmNsePage;
    private warmEquityQuotePage;
    private normalizeIndexDetails;
    /**
     * Bootstrap NSE session via homepage and persist all Set-Cookie values in the jar.
     * Note: some endpoints (e.g. /api/quote-equity) may still return 403 from Akamai WAF
     * even with a valid session.
     */
    private ensureNseSession;
    /** @deprecated Use ensureNseSession internally; kept for tests that spy on cookie bootstrap. */
    private getNseCookies;
    /**
     * Get cookies for charting.nseindia.com domain
     * Used as fallback when charting API fails with NSE cookies
     * @returns Charting domain cookies
     */
    private ensureChartingSession;
    private getChartingCookies;
    /**
     *
     * @param url NSE API's URL or charting API URL
     * @param domain Domain type: 'nse' for www.nseindia.com, 'charting' for charting.nseindia.com
     * @returns JSON data from NSE India or charting service
     */
    getData(url: string, domain?: 'nse' | 'charting'): Promise<any>;
    /**
     *
     * @param apiEndpoint
     * @returns
     */
    getDataByEndpoint(apiEndpoint: string): Promise<any>;
    /**
     * Get historical chart data from charting.nseindia.com
     * @param symbol Equity symbol with series (e.g., 'ONGC')
     * @param range Optional date range for chart data query
     * @param token NSE script code (token) for the symbol. If not provided, it is
     *              automatically fetched via {@link getEquitySymbolInfo}.
     * @param symbolType Type of symbol (e.g., 'Equity', 'Index')
     * @param chartType Chart type (e.g., 'I' for intraday, 'D' for daily)
     * @param timeInterval Time interval in minutes (e.g., '5', '15', '60')
     * @returns Chart data from charting service
     */
    getEquityChartHistoricalData(symbol: string, range?: DateRange, token?: string | number, symbolType?: string, chartType?: string, timeInterval?: string | number): Promise<ChartingOHLCResponse>;
    /**
     * Look up the NSE script code (token) for an equity symbol using the charting domain.
     * The `scripCode` in the returned object is the value that must be passed as `token`
     * to {@link getEquityChartHistoricalData}.
     * @param symbol Equity symbol with series code (e.g., 'ONGC') OR plain symbol (e.g., 'ONGC')
     * @param segment Optional market segment filter (default: empty string, returns all segments)
     * @returns Symbol information including scripCode / token
     */
    getEquitySymbolInfo(symbol: string, segment?: string): Promise<ChartingSymbolInfo>;
    /**
     *
     * @returns List of NSE equity symbols
     */
    getAllStockSymbols(): Promise<string[]>;
    private getPreOpenMarketCached;
    private resolveCapitalMarketType;
    private fetchEquityDetailsEnrichment;
    private enrichPreOpenEquityDetails;
    /**
     * Equity quote with fallback when /api/quote-equity is blocked (Akamai 403).
     * Primary: quote-equity JSON; fallback: market-data-pre-open row for the symbol.
     */
    getEquityDetails(symbol: string): Promise<EquityDetails>;
    /**
     *
     * @param symbol
     * @returns
     */
    getEquityTradeInfo(symbol: string): Promise<EquityTradeInfo>;
    /**
     *
     * @param symbol
     * @returns
     */
    getEquityCorporateInfo(symbol: string): Promise<EquityCorporateInfo>;
    /**
     *
     * @param symbol
     * @returns
     */
    getEquityIntradayData(symbol: string): Promise<IntradayData>;
    /**
     *
     * @param symbol
     * @param range
     * @returns
     */
    getEquityHistoricalData(symbol: string, range?: DateRange): Promise<EquityHistoricalData[]>;
    /**
     *
     * @param symbol
     * @returns
     */
    getEquitySeries(symbol: string): Promise<SeriesData>;
    /**
     *
     * @param index
     * @returns
     */
    getEquityStockIndices(index: string): Promise<IndexDetails>;
    /**
     *
     * @param index
     * @returns
     */
    getIndexIntradayData(index: string): Promise<IntradayData>;
    /**
     * Get option chain contract information (expiry dates and strike prices) for an index
     *
     * @param indexSymbol
     * @returns
     */
    getIndexOptionChainContractInfo(indexSymbol: string): Promise<OptionChainContractInfo>;
    /**
     *
     * @param indexSymbol
     * @param expiry Optional expiry date in DD-MMM-YYYY format (e.g., "23-Dec-2025").
     *               If not provided, will fetch nearest upcoming expiry
     * @returns
     */
    getIndexOptionChain(indexSymbol: string, expiry?: string): Promise<IndexOptionChainData>;
    /**
     *
     * @param symbol
     * @returns
     */
    getEquityOptionChain(symbol: string): Promise<EquityOptionChainData>;
    /**
         *
         * @param symbol
         * @returns
         */
    getCommodityOptionChain(symbol: string): Promise<CommodityOptionChainData>;
    /**
     * Get NSE glossary content
     * @returns Glossary content
     */
    getGlossary(): Promise<Glossary>;
    /**
     * Get trading holidays
     * @returns List of trading holidays
     */
    getTradingHolidays(): Promise<HolidaysBySegment>;
    /**
     * Get clearing holidays
     * @returns List of clearing holidays
     */
    getClearingHolidays(): Promise<HolidaysBySegment>;
    /**
     * Get market status
     * @returns Current market status
     */
    getMarketStatus(): Promise<MarketStatus>;
    /**
     * Get market turnover
     * @returns Market turnover data
     */
    getMarketTurnover(): Promise<MarketTurnover>;
    /**
     * Get all indices
     * @returns List of all indices
     */
    getAllIndices(): Promise<AllIndicesData>;
    /**
     * Get index names
     * @returns List of index names
     */
    getIndexNames(): Promise<IndexNamesData>;
    /**
     * Get circulars
     * @returns List of circulars
     */
    getCirculars(): Promise<CircularsData>;
    /**
     * Get latest circulars
     * @returns List of latest circulars
     */
    getLatestCirculars(): Promise<LatestCircularData>;
    /**
     * Get equity master
     * @returns Equity master data with categorized indices
     */
    getEquityMaster(): Promise<EquityMaster>;
    /**
     * Get pre-open market data
     * @returns Pre-open market data
     */
    getPreOpenMarketData(): Promise<PreOpenMarketData>;
    /**
     * Get merged daily reports for capital market
     * @returns Daily reports for capital market
     */
    getMergedDailyReportsCapital(): Promise<MergedDailyReportsData[]>;
    /**
     * Get merged daily reports for derivatives
     * @returns Daily reports for derivatives
     */
    getMergedDailyReportsDerivatives(): Promise<MergedDailyReportsData[]>;
    /**
     * Get merged daily reports for debt market
     * @returns Daily reports for debt market
     */
    getMergedDailyReportsDebt(): Promise<MergedDailyReportsData[]>;
    /**
     * Get technical indicators for a specific equity symbol
     * @param symbol - The equity symbol (e.g., 'RELIANCE', 'TCS')
     * @param period - Number of days for historical data (default: 200)
     * @param options - Optional configuration for indicators
     * @returns Promise<TechnicalIndicators>
     */
    getTechnicalIndicators(symbol: string, period?: number, options?: {
        smaPeriods?: number[];
        emaPeriods?: number[];
        rsiPeriod?: number;
        macdFast?: number;
        macdSlow?: number;
        macdSignal?: number;
        bbPeriod?: number;
        bbStdDev?: number;
        stochK?: number;
        stochD?: number;
        williamsRPeriod?: number;
        atrPeriod?: number;
        adxPeriod?: number;
        cciPeriod?: number;
        mfiPeriod?: number;
        rocPeriod?: number;
        momentumPeriod?: number;
    }): Promise<TechnicalIndicators>;
}
export type { DateRange, IntradayData, EquityDetails, EquityTradeInfo, EquityHistoricalData, SeriesData, IndexDetails, EquityOptionChainData, IndexOptionChainData, CommodityOptionChainData, OptionChainContractInfo, EquityCorporateInfo, Glossary, HolidaysBySegment, MarketStatus, MarketTurnover, AllIndicesData, IndexNamesData, CircularsData, LatestCircularData, EquityMaster, PreOpenMarketData, MergedDailyReportsData, TechnicalIndicators, ChartingSymbolInfo, ChartingOHLCItem, ChartingOHLCResponse, EquityInfo, EquityMetadata, EquitySecurityInfo, EquityPriceInfo, EquityPreOpenMarket, EquityHistoricalInfo, EquityOptionChainItem, IndexEquityInfo, IndexRecords, CommodityRecords, Filtered, Holiday, MarketState, MarketCap, IndicativeNifty50, GiftNifty, Datum, PreOpenDetails, OptionsData, OptionsDetails };
//# sourceMappingURL=index.d.ts.map