UNPKG

smartapi-typescript

Version:

TypeScript library for Angel One SmartAPI broker API

80 lines (79 loc) 2.67 kB
import { AxiosInstance } from 'axios'; import { ApiResponse, Holding, Position, RMSData, AllHoldingsResponse, PositionConversionParams } from '../../types'; import { Auth } from '../auth'; /** * Portfolio module for SmartAPI * Handles positions, holdings, funds and related functionality */ export declare class Portfolio { private auth; private httpClient; private debug; /** * Initialize portfolio module */ constructor(auth: Auth, httpClient: AxiosInstance, debug?: boolean); /** * Log debug messages if debug mode is enabled */ private log; /** * Get user's current positions * @param options Network configuration options * @returns Positions data */ getPositions(options?: { clientLocalIP?: string; clientPublicIP?: string; macAddress?: string; }): Promise<ApiResponse<Position[]>>; /** * Get user's holdings * @param options Network configuration options * @returns Holdings data */ getHoldings(options?: { clientLocalIP?: string; clientPublicIP?: string; macAddress?: string; }): Promise<ApiResponse<Holding[]>>; /** * Get all holdings with comprehensive portfolio summary * This endpoint offers a more comprehensive view of the entire investments, including * individual stock holdings and a summary of total investments in the "totalholding" section * * @param options Network configuration options * @returns All holdings data with portfolio summary */ getAllHoldings(options?: { clientLocalIP?: string; clientPublicIP?: string; macAddress?: string; }): Promise<ApiResponse<AllHoldingsResponse>>; /** * Get funds and margin details (RMS limits) * The GET Request to RMS returns fund, cash and margin information * of the user for equity and commodity segments. * * @param options Network configuration options * @returns Funds and RMS data */ getFunds(options?: { clientLocalIP?: string; clientPublicIP?: string; macAddress?: string; }): Promise<ApiResponse<RMSData>>; /** * Convert a position from one product type to another * For example, convert from INTRADAY to DELIVERY or vice versa * * @param params Position conversion parameters * @param options Network configuration options * @returns Conversion response */ convertPosition(params: PositionConversionParams, options?: { clientLocalIP?: string; clientPublicIP?: string; macAddress?: string; }): Promise<ApiResponse<any>>; }