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; export declare const GetAccountsResponse: UsersUtils.MessageFns; export declare const Account: UsersUtils.MessageFns; export declare const GetMarginAttributesRequest: UsersUtils.MessageFns; export declare const GetMarginAttributesResponse: UsersUtils.MessageFns; export declare const GetUserTariffRequest: UsersUtils.MessageFns; export declare const GetUserTariffResponse: UsersUtils.MessageFns; export declare const UnaryLimit: UsersUtils.MessageFns; export declare const StreamLimit: UsersUtils.MessageFns; export declare const GetInfoRequest: UsersUtils.MessageFns; export declare const GetInfoResponse: UsersUtils.MessageFns; /** * С помощью сервиса можно получить:
1. * список счетов пользователя;
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; readonly requestStream: false; readonly responseType: UsersUtils.MessageFns; readonly responseStream: false; readonly options: {}; }; /** Рассчитать маржинальные показатели по счёту. */ readonly getMarginAttributes: { readonly name: "GetMarginAttributes"; readonly requestType: UsersUtils.MessageFns; readonly requestStream: false; readonly responseType: UsersUtils.MessageFns; readonly responseStream: false; readonly options: {}; }; /** Запросить тариф пользователя. */ readonly getUserTariff: { readonly name: "GetUserTariff"; readonly requestType: UsersUtils.MessageFns; readonly requestStream: false; readonly responseType: UsersUtils.MessageFns; readonly responseStream: false; readonly options: {}; }; /** Получить информацию о пользователе. */ readonly getInfo: { readonly name: "GetInfo"; readonly requestType: UsersUtils.MessageFns; readonly requestStream: false; readonly responseType: UsersUtils.MessageFns; readonly responseStream: false; readonly options: {}; }; }; }; export interface UsersServiceImplementation { /** Получить счета пользователя. */ getAccounts(request: GetAccountsRequest, context: CallContext & CallContextExt): Promise>; /** Рассчитать маржинальные показатели по счёту. */ getMarginAttributes(request: GetMarginAttributesRequest, context: CallContext & CallContextExt): Promise>; /** Запросить тариф пользователя. */ getUserTariff(request: GetUserTariffRequest, context: CallContext & CallContextExt): Promise>; /** Получить информацию о пользователе. */ getInfo(request: GetInfoRequest, context: CallContext & CallContextExt): Promise>; } export interface UsersServiceClient { /** Получить счета пользователя. */ getAccounts(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** Рассчитать маржинальные показатели по счёту. */ getMarginAttributes(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** Запросить тариф пользователя. */ getUserTariff(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** Получить информацию о пользователе. */ getInfo(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; } type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; type DeepPartial = T extends Builtin ? T : T extends globalThis.Array ? globalThis.Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; export declare namespace UsersUtils { interface MessageFns { 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; fromPartial(object: DeepPartial): T; } } export {};