tinkoff-invest-api
Version:
Node.js SDK for Tinkoff Invest API
311 lines • 17 kB
TypeScript
import type { CallContext, CallOptions } from "nice-grpc-common";
import _m0 from "protobufjs/minimal.js";
import { MoneyValue, Quotation } from "./common.js";
export declare const protobufPackage = "tinkoff.public.invest.api.contract.v1";
/** Тип счёта. */
export declare enum AccountType {
/** ACCOUNT_TYPE_UNSPECIFIED - Тип аккаунта не определён. */
ACCOUNT_TYPE_UNSPECIFIED = 0,
/** ACCOUNT_TYPE_TINKOFF - Брокерский счёт Т-Инвестиций. */
ACCOUNT_TYPE_TINKOFF = 1,
/** ACCOUNT_TYPE_TINKOFF_IIS - ИИС. */
ACCOUNT_TYPE_TINKOFF_IIS = 2,
/** ACCOUNT_TYPE_INVEST_BOX - Инвесткопилка. */
ACCOUNT_TYPE_INVEST_BOX = 3,
/** ACCOUNT_TYPE_INVEST_FUND - Фонд денежного рынка. */
ACCOUNT_TYPE_INVEST_FUND = 4,
UNRECOGNIZED = -1
}
export declare function accountTypeFromJSON(object: any): AccountType;
export declare function accountTypeToJSON(object: AccountType): string;
/** Статус счёта. */
export declare enum AccountStatus {
/** ACCOUNT_STATUS_UNSPECIFIED - Статус счёта не определён. */
ACCOUNT_STATUS_UNSPECIFIED = 0,
/** ACCOUNT_STATUS_NEW - Новый, в процессе открытия. */
ACCOUNT_STATUS_NEW = 1,
/** ACCOUNT_STATUS_OPEN - Открытый и активный счёт. */
ACCOUNT_STATUS_OPEN = 2,
/** ACCOUNT_STATUS_CLOSED - Закрытый счёт. */
ACCOUNT_STATUS_CLOSED = 3,
/** ACCOUNT_STATUS_ALL - Все счета. */
ACCOUNT_STATUS_ALL = 4,
UNRECOGNIZED = -1
}
export declare function accountStatusFromJSON(object: any): AccountStatus;
export declare function accountStatusToJSON(object: AccountStatus): string;
/** Уровень доступа к счёту. */
export declare enum AccessLevel {
/** ACCOUNT_ACCESS_LEVEL_UNSPECIFIED - Уровень доступа не определён. */
ACCOUNT_ACCESS_LEVEL_UNSPECIFIED = 0,
/** ACCOUNT_ACCESS_LEVEL_FULL_ACCESS - Полный доступ к счёту. */
ACCOUNT_ACCESS_LEVEL_FULL_ACCESS = 1,
/** ACCOUNT_ACCESS_LEVEL_READ_ONLY - Доступ с уровнем прав «только чтение». */
ACCOUNT_ACCESS_LEVEL_READ_ONLY = 2,
/** ACCOUNT_ACCESS_LEVEL_NO_ACCESS - Доступа нет. */
ACCOUNT_ACCESS_LEVEL_NO_ACCESS = 3,
UNRECOGNIZED = -1
}
export declare function accessLevelFromJSON(object: any): AccessLevel;
export declare function accessLevelToJSON(object: AccessLevel): string;
/** Запрос получения счетов пользователя. */
export interface GetAccountsRequest {
/** Статус счета. */
status?: AccountStatus | undefined;
}
/** Список счетов пользователя. */
export interface GetAccountsResponse {
/** Массив счетов клиента. */
accounts: Account[];
}
/** Информация о счёте. */
export interface Account {
/** Идентификатор счёта. */
id: string;
/** Тип счёта. */
type: AccountType;
/** Название счёта. */
name: string;
/** Статус счёта. */
status: AccountStatus;
/** Дата открытия счёта в часовом поясе UTC. */
openedDate?: Date | undefined;
/** Дата закрытия счёта в часовом поясе UTC. */
closedDate?: Date | undefined;
/** Уровень доступа к текущему счёту (определяется токеном). */
accessLevel: AccessLevel;
}
/** Запрос маржинальных показателей по счёту. */
export interface GetMarginAttributesRequest {
/** Идентификатор счёта пользователя. */
accountId: string;
}
/** Маржинальные показатели по счёту. */
export interface GetMarginAttributesResponse {
/** Ликвидная стоимость портфеля. [Подробнее про ликвидный портфель](https://help.tbank.ru/margin-trade/short/liquid-portfolio/). */
liquidPortfolio?: MoneyValue | undefined;
/** Начальная маржа — начальное обеспечение для совершения новой сделки. [Подробнее про начальную и минимальную маржу](https://help.tbank.ru/margin-trade/short/initial-and-maintenance-margin/). */
startingMargin?: MoneyValue | undefined;
/** Минимальная маржа — это минимальное обеспечение для поддержания позиции, которую вы уже открыли. [Подробнее про начальную и минимальную маржу](https://help.tbank.ru/margin-trade/short/initial-and-maintenance-margin/). */
minimalMargin?: MoneyValue | undefined;
/** Уровень достаточности средств. Соотношение стоимости ликвидного портфеля к начальной марже. */
fundsSufficiencyLevel?: Quotation | undefined;
/** Объем недостающих средств. Разница между стартовой маржой и ликвидной стоимости портфеля. */
amountOfMissingFunds?: MoneyValue | undefined;
/** Скорректированная маржа. Начальная маржа, в которой плановые позиции рассчитываются с учётом активных заявок на покупку позиций лонг или продажу позиций шорт. */
correctedMargin?: MoneyValue | undefined;
}
/** Запрос текущих лимитов пользователя. */
export interface GetUserTariffRequest {
}
/** Текущие лимиты пользователя. */
export interface GetUserTariffResponse {
/** Массив лимитов пользователя по unary-запросам. */
unaryLimits: UnaryLimit[];
/** Массив лимитов пользователей для stream-соединений. */
streamLimits: StreamLimit[];
}
/** Лимит unary-методов. */
export interface UnaryLimit {
/** Количество unary-запросов в минуту. */
limitPerMinute: number;
/** Названия методов. */
methods: string[];
}
/** Лимит stream-соединений. */
export interface StreamLimit {
/** Максимальное количество stream-соединений. */
limit: number;
/** Названия stream-методов. */
streams: string[];
/** Текущее количество открытых stream-соединений. */
open: number;
}
/** Запрос информации о пользователе. */
export interface GetInfoRequest {
}
/** Информация о пользователе. */
export interface GetInfoResponse {
/** Признак премиум клиента. */
premStatus: boolean;
/** Признак квалифицированного инвестора. */
qualStatus: boolean;
/** Набор требующих тестирования инструментов и возможностей, с которыми может работать пользователь. [Подробнее](https://russianinvestments.github.io/investAPI/faq_users/). */
qualifiedForWorkWith: string[];
/** Наименование тарифа пользователя. */
tariff: string;
}
export declare const GetAccountsRequest: {
encode(message: GetAccountsRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetAccountsRequest;
fromJSON(object: any): GetAccountsRequest;
toJSON(message: GetAccountsRequest): unknown;
};
export declare const GetAccountsResponse: {
encode(message: GetAccountsResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetAccountsResponse;
fromJSON(object: any): GetAccountsResponse;
toJSON(message: GetAccountsResponse): unknown;
};
export declare const Account: {
encode(message: Account, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): Account;
fromJSON(object: any): Account;
toJSON(message: Account): unknown;
};
export declare const GetMarginAttributesRequest: {
encode(message: GetMarginAttributesRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetMarginAttributesRequest;
fromJSON(object: any): GetMarginAttributesRequest;
toJSON(message: GetMarginAttributesRequest): unknown;
};
export declare const GetMarginAttributesResponse: {
encode(message: GetMarginAttributesResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetMarginAttributesResponse;
fromJSON(object: any): GetMarginAttributesResponse;
toJSON(message: GetMarginAttributesResponse): unknown;
};
export declare const GetUserTariffRequest: {
encode(_: GetUserTariffRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetUserTariffRequest;
fromJSON(_: any): GetUserTariffRequest;
toJSON(_: GetUserTariffRequest): unknown;
};
export declare const GetUserTariffResponse: {
encode(message: GetUserTariffResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetUserTariffResponse;
fromJSON(object: any): GetUserTariffResponse;
toJSON(message: GetUserTariffResponse): unknown;
};
export declare const UnaryLimit: {
encode(message: UnaryLimit, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): UnaryLimit;
fromJSON(object: any): UnaryLimit;
toJSON(message: UnaryLimit): unknown;
};
export declare const StreamLimit: {
encode(message: StreamLimit, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): StreamLimit;
fromJSON(object: any): StreamLimit;
toJSON(message: StreamLimit): unknown;
};
export declare const GetInfoRequest: {
encode(_: GetInfoRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetInfoRequest;
fromJSON(_: any): GetInfoRequest;
toJSON(_: GetInfoRequest): unknown;
};
export declare const GetInfoResponse: {
encode(message: GetInfoResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetInfoResponse;
fromJSON(object: any): GetInfoResponse;
toJSON(message: GetInfoResponse): unknown;
};
/**
* С помощью сервиса можно получить: </br> 1.
* список счетов пользователя; </br> 2. маржинальные показатели по счёту.
*/
export type UsersServiceDefinition = typeof UsersServiceDefinition;
export declare const UsersServiceDefinition: {
readonly name: "UsersService";
readonly fullName: "tinkoff.public.invest.api.contract.v1.UsersService";
readonly methods: {
/** Получить счета пользователя. */
readonly getAccounts: {
readonly name: "GetAccounts";
readonly requestType: {
encode(message: GetAccountsRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetAccountsRequest;
fromJSON(object: any): GetAccountsRequest;
toJSON(message: GetAccountsRequest): unknown;
};
readonly requestStream: false;
readonly responseType: {
encode(message: GetAccountsResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetAccountsResponse;
fromJSON(object: any): GetAccountsResponse;
toJSON(message: GetAccountsResponse): unknown;
};
readonly responseStream: false;
readonly options: {};
};
/** Рассчитать маржинальные показатели по счёту. */
readonly getMarginAttributes: {
readonly name: "GetMarginAttributes";
readonly requestType: {
encode(message: GetMarginAttributesRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetMarginAttributesRequest;
fromJSON(object: any): GetMarginAttributesRequest;
toJSON(message: GetMarginAttributesRequest): unknown;
};
readonly requestStream: false;
readonly responseType: {
encode(message: GetMarginAttributesResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetMarginAttributesResponse;
fromJSON(object: any): GetMarginAttributesResponse;
toJSON(message: GetMarginAttributesResponse): unknown;
};
readonly responseStream: false;
readonly options: {};
};
/** Запросить тариф пользователя. */
readonly getUserTariff: {
readonly name: "GetUserTariff";
readonly requestType: {
encode(_: GetUserTariffRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetUserTariffRequest;
fromJSON(_: any): GetUserTariffRequest;
toJSON(_: GetUserTariffRequest): unknown;
};
readonly requestStream: false;
readonly responseType: {
encode(message: GetUserTariffResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetUserTariffResponse;
fromJSON(object: any): GetUserTariffResponse;
toJSON(message: GetUserTariffResponse): unknown;
};
readonly responseStream: false;
readonly options: {};
};
/** Получить информацию о пользователе. */
readonly getInfo: {
readonly name: "GetInfo";
readonly requestType: {
encode(_: GetInfoRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetInfoRequest;
fromJSON(_: any): GetInfoRequest;
toJSON(_: GetInfoRequest): unknown;
};
readonly requestStream: false;
readonly responseType: {
encode(message: GetInfoResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetInfoResponse;
fromJSON(object: any): GetInfoResponse;
toJSON(message: GetInfoResponse): unknown;
};
readonly responseStream: false;
readonly options: {};
};
};
};
export interface UsersServiceImplementation<CallContextExt = {}> {
/** Получить счета пользователя. */
getAccounts(request: GetAccountsRequest, context: CallContext & CallContextExt): Promise<GetAccountsResponse>;
/** Рассчитать маржинальные показатели по счёту. */
getMarginAttributes(request: GetMarginAttributesRequest, context: CallContext & CallContextExt): Promise<GetMarginAttributesResponse>;
/** Запросить тариф пользователя. */
getUserTariff(request: GetUserTariffRequest, context: CallContext & CallContextExt): Promise<GetUserTariffResponse>;
/** Получить информацию о пользователе. */
getInfo(request: GetInfoRequest, context: CallContext & CallContextExt): Promise<GetInfoResponse>;
}
export interface UsersServiceClient<CallOptionsExt = {}> {
/** Получить счета пользователя. */
getAccounts(request: GetAccountsRequest, options?: CallOptions & CallOptionsExt): Promise<GetAccountsResponse>;
/** Рассчитать маржинальные показатели по счёту. */
getMarginAttributes(request: GetMarginAttributesRequest, options?: CallOptions & CallOptionsExt): Promise<GetMarginAttributesResponse>;
/** Запросить тариф пользователя. */
getUserTariff(request: GetUserTariffRequest, options?: CallOptions & CallOptionsExt): Promise<GetUserTariffResponse>;
/** Получить информацию о пользователе. */
getInfo(request: GetInfoRequest, options?: CallOptions & CallOptionsExt): Promise<GetInfoResponse>;
}
//# sourceMappingURL=users.d.ts.map