import { j as ForexPool, p as ForexInvestment, t as ForexLogEntry, m as ForexPoolTransaction, i as ForexPoolType, n as ForexPoolDailySnapshot, F as FOREX_CAPITAL_SPLIT, v as FOREX_AGENT, h as FOREX_CURRENCY_PAIRS, f as FOREX_CYCLE_OPTIONS, d as computePoolAllocations, x as estimateForexProfit } from './console-BoAIxikK.js';

/** Set the access token for authenticated forex API calls */
declare function setForexAccessToken(token: string): void;
/** Clear the forex access token */
declare function clearForexAccessToken(): void;
/** Configure the engine URL for forex API calls */
declare function setForexEngineUrl(url: string): void;
interface UseForexPoolsResult {
    pools: ForexPool[];
    isLoading: boolean;
    error: string | null;
    refresh: () => void;
}
declare function useForexPools(options?: {
    refreshInterval?: number;
}): UseForexPoolsResult;
interface UseForexInvestmentsResult {
    investments: ForexInvestment[];
    isLoading: boolean;
    error: string | null;
    createInvestment: (params: {
        amount: number;
        selectedPairs: string[];
        cycleDays: number;
    }) => Promise<ForexInvestment | null>;
    redeemInvestment: (investmentId: string) => Promise<boolean>;
    refresh: () => void;
    portfolioSummary: {
        totalInvested: number;
        totalValue: number;
        totalProfit: number;
        activeCount: number;
    };
}
declare function useForexInvestments(options?: {
    refreshInterval?: number;
}): UseForexInvestmentsResult;
interface UseForexSimulationResult {
    logs: ForexLogEntry[];
    poolTransactions: ForexPoolTransaction[];
    isRunning: boolean;
    stats: {
        totalPnl: number;
        totalTrades: number;
        totalPips: number;
        totalLots: number;
    };
    start: () => void;
    stop: () => void;
    clearLogs: () => void;
}
declare function useForexSimulation(options?: {
    maxLogs?: number;
}): UseForexSimulationResult;
interface UseForexPoolDataResult {
    snapshots: Record<ForexPoolType, ForexPoolDailySnapshot[]>;
    transactions: ForexPoolTransaction[];
    isInitialized: boolean;
    initialize: () => void;
}
declare function useForexPoolData(): UseForexPoolDataResult;
interface UseForexTradingResult {
    pools: UseForexPoolsResult;
    investments: UseForexInvestmentsResult;
    simulation: UseForexSimulationResult;
    poolData: UseForexPoolDataResult;
    capitalSplit: typeof FOREX_CAPITAL_SPLIT;
    agent: typeof FOREX_AGENT;
    currencyPairs: typeof FOREX_CURRENCY_PAIRS;
    cycleOptions: typeof FOREX_CYCLE_OPTIONS;
    computePoolAllocations: typeof computePoolAllocations;
    estimateProfit: typeof estimateForexProfit;
}
declare function useForexTrading(options?: {
    poolRefreshInterval?: number;
    investmentRefreshInterval?: number;
}): UseForexTradingResult;

export { type UseForexPoolsResult as U, useForexInvestments as a, useForexSimulation as b, useForexPoolData as c, useForexTrading as d, clearForexAccessToken as e, setForexEngineUrl as f, type UseForexInvestmentsResult as g, type UseForexSimulationResult as h, type UseForexPoolDataResult as i, type UseForexTradingResult as j, setForexAccessToken as s, useForexPools as u };
