import { HoldingInfo, OrderWithExtraInfo } from '../..'; import { ModelFractionalSharePolicy, OrderFilterType, OrderTransaction, OverExposedType, PositionType } from '../../constants/lookups'; import { ModelDriftReportItem, ModelWithExtraInfo, OverExposedAccount, PortfolioWithExtraInfo, RebalanceRecommendationItem } from '../../types'; export interface IModelApi { getModels(): Promise; getModel(modelId: number): Promise; getPortfolio(modelId: number, combine?: boolean, symbol?: string, positionType?: PositionType): Promise; getOrders(modelId: number, filterType?: OrderFilterType | OrderFilterType[], symbol?: string): Promise; getOverExposedAccounts(modelId: number, threshold: number, type: OverExposedType): Promise; getDriftReport(modelId: number, accountIds?: number[]): Promise; getHoldingInfo(modelId: number, symbol: string): Promise; getRebalanceRecommendations(modelId: number, targets: Record, fractionalSharePolicy?: ModelFractionalSharePolicy, accountIds?: number[], presets?: { accountId: number; transaction: OrderTransaction.Buy | OrderTransaction.Sell; symbol: string; quantity: number; }[]): Promise; }