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>>;
}
