smartapi-typescript
Version:
TypeScript library for Angel One SmartAPI broker API
80 lines (79 loc) • 2.67 kB
TypeScript
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>>;
}