@tinkoff/invest-js
Version:
T-Invest OpenAPI Client
230 lines (229 loc) • 13.3 kB
TypeScript
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { type CallContext, type CallOptions } from "nice-grpc-common";
import { MoneyValue, Quotation } from "./common";
/** Тип счёта. */
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: UsersUtils.MessageFns<GetAccountsRequest>;
export declare const GetAccountsResponse: UsersUtils.MessageFns<GetAccountsResponse>;
export declare const Account: UsersUtils.MessageFns<Account>;
export declare const GetMarginAttributesRequest: UsersUtils.MessageFns<GetMarginAttributesRequest>;
export declare const GetMarginAttributesResponse: UsersUtils.MessageFns<GetMarginAttributesResponse>;
export declare const GetUserTariffRequest: UsersUtils.MessageFns<GetUserTariffRequest>;
export declare const GetUserTariffResponse: UsersUtils.MessageFns<GetUserTariffResponse>;
export declare const UnaryLimit: UsersUtils.MessageFns<UnaryLimit>;
export declare const StreamLimit: UsersUtils.MessageFns<StreamLimit>;
export declare const GetInfoRequest: UsersUtils.MessageFns<GetInfoRequest>;
export declare const GetInfoResponse: UsersUtils.MessageFns<GetInfoResponse>;
/**
* С помощью сервиса можно получить: </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: UsersUtils.MessageFns<GetAccountsRequest>;
readonly requestStream: false;
readonly responseType: UsersUtils.MessageFns<GetAccountsResponse>;
readonly responseStream: false;
readonly options: {};
};
/** Рассчитать маржинальные показатели по счёту. */
readonly getMarginAttributes: {
readonly name: "GetMarginAttributes";
readonly requestType: UsersUtils.MessageFns<GetMarginAttributesRequest>;
readonly requestStream: false;
readonly responseType: UsersUtils.MessageFns<GetMarginAttributesResponse>;
readonly responseStream: false;
readonly options: {};
};
/** Запросить тариф пользователя. */
readonly getUserTariff: {
readonly name: "GetUserTariff";
readonly requestType: UsersUtils.MessageFns<GetUserTariffRequest>;
readonly requestStream: false;
readonly responseType: UsersUtils.MessageFns<GetUserTariffResponse>;
readonly responseStream: false;
readonly options: {};
};
/** Получить информацию о пользователе. */
readonly getInfo: {
readonly name: "GetInfo";
readonly requestType: UsersUtils.MessageFns<GetInfoRequest>;
readonly requestStream: false;
readonly responseType: UsersUtils.MessageFns<GetInfoResponse>;
readonly responseStream: false;
readonly options: {};
};
};
};
export interface UsersServiceImplementation<CallContextExt = {}> {
/** Получить счета пользователя. */
getAccounts(request: GetAccountsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<GetAccountsResponse>>;
/** Рассчитать маржинальные показатели по счёту. */
getMarginAttributes(request: GetMarginAttributesRequest, context: CallContext & CallContextExt): Promise<DeepPartial<GetMarginAttributesResponse>>;
/** Запросить тариф пользователя. */
getUserTariff(request: GetUserTariffRequest, context: CallContext & CallContextExt): Promise<DeepPartial<GetUserTariffResponse>>;
/** Получить информацию о пользователе. */
getInfo(request: GetInfoRequest, context: CallContext & CallContextExt): Promise<DeepPartial<GetInfoResponse>>;
}
export interface UsersServiceClient<CallOptionsExt = {}> {
/** Получить счета пользователя. */
getAccounts(request: DeepPartial<GetAccountsRequest>, options?: CallOptions & CallOptionsExt): Promise<GetAccountsResponse>;
/** Рассчитать маржинальные показатели по счёту. */
getMarginAttributes(request: DeepPartial<GetMarginAttributesRequest>, options?: CallOptions & CallOptionsExt): Promise<GetMarginAttributesResponse>;
/** Запросить тариф пользователя. */
getUserTariff(request: DeepPartial<GetUserTariffRequest>, options?: CallOptions & CallOptionsExt): Promise<GetUserTariffResponse>;
/** Получить информацию о пользователе. */
getInfo(request: DeepPartial<GetInfoRequest>, options?: CallOptions & CallOptionsExt): Promise<GetInfoResponse>;
}
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
[K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
export declare namespace UsersUtils {
interface MessageFns<T> {
encode(message: T, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): T;
fromJSON(object: any): T;
toJSON(message: T): unknown;
create(base?: DeepPartial<T>): T;
fromPartial(object: DeepPartial<T>): T;
}
}
export {};