from proalgotrader_core.algo_session import AlgoSession as AlgoSession
from proalgotrader_core.api import Api as Api
from proalgotrader_core.args_manager import ArgsManager as ArgsManager
from proalgotrader_core.broker_manager import BrokerManager as BrokerManager
from proalgotrader_core.broker_symbol import BrokerSymbol as BrokerSymbol
from proalgotrader_core.chart import Chart as Chart
from proalgotrader_core.chart_manager import ChartManager as ChartManager
from proalgotrader_core.helpers.get_strike_price import get_strike_price as get_strike_price
from proalgotrader_core.notification_manager import NotificationManager as NotificationManager
from proalgotrader_core.order import Order as Order
from proalgotrader_core.position import Position as Position
from proalgotrader_core.protocols.enums.account_type import AccountType as AccountType
from proalgotrader_core.protocols.enums.market_type import MarketType as MarketType
from proalgotrader_core.protocols.enums.order_type import OrderType as OrderType
from proalgotrader_core.protocols.enums.position_type import PositionType as PositionType
from proalgotrader_core.protocols.enums.segment_type import SegmentType as SegmentType
from proalgotrader_core.protocols.enums.symbol_type import SymbolType as SymbolType
from proalgotrader_core.protocols.position_manager import PositionManagerProtocol as PositionManagerProtocol
from proalgotrader_core.protocols.signal_manager import SignalManagerProtocol as SignalManagerProtocol
from proalgotrader_core.protocols.strategy import StrategyProtocol as StrategyProtocol
from proalgotrader_core.trade import Trade as Trade

__test__: dict

class Algorithm:
    def __init__(self, *args, **kwargs) -> None: ...
    def add_chart(self, *args, **kwargs): ...
    def add_equity(self, *args, **kwargs): ...
    def add_future(self, *args, **kwargs): ...
    def add_option(self, *args, **kwargs): ...
    def between_time(self, *args, **kwargs): ...
    def boot(self, *args, **kwargs): ...
    def buy(self, *args, **kwargs): ...
    def chart_next(self, *args, **kwargs): ...
    def get_expiry(self, *args, **kwargs): ...
    def initialize(self, *args, **kwargs): ...
    def initialize_signals(self, *args, **kwargs): ...
    def next(self, *args, **kwargs): ...
    def next_signals(self, *args, **kwargs): ...
    def run(self, *args, **kwargs): ...
    def sell(self, *args, **kwargs): ...
    def set_account_type(self, *args, **kwargs): ...
    def set_position_manager(self, *args, **kwargs): ...
    def set_signal_manager(self, *args, **kwargs): ...
    def set_sleep_time(self, *args, **kwargs): ...
    def set_strategy(self, *args, **kwargs): ...
    def set_symbols(self, *args, **kwargs): ...
    @property
    def current_date(self): ...
    @property
    def current_datetime(self): ...
    @property
    def current_time(self): ...
    @property
    def orders(self): ...
    @property
    def positions(self): ...
    @property
    def total_pnl(self): ...
    @property
    def trades(self): ...
