import type { CallContext, CallOptions } from "nice-grpc-common";
import _m0 from "protobufjs/minimal.js";
import { Page, PageResponse, Quotation } from "./common.js";
export declare const protobufPackage = "tinkoff.public.invest.api.contract.v1";
/** Тип стратегии. */
export declare enum StrategyType {
    /** STRATEGY_TYPE_UNSPECIFIED - Не определен. */
    STRATEGY_TYPE_UNSPECIFIED = 0,
    /** STRATEGY_TYPE_TECHNICAL - Техническая стратегия. */
    STRATEGY_TYPE_TECHNICAL = 1,
    /** STRATEGY_TYPE_FUNDAMENTAL - Фундаментальная стратегия. */
    STRATEGY_TYPE_FUNDAMENTAL = 2,
    UNRECOGNIZED = -1
}
export declare function strategyTypeFromJSON(object: any): StrategyType;
export declare function strategyTypeToJSON(object: StrategyType): string;
/** Направление сигнала. */
export declare enum SignalDirection {
    /** SIGNAL_DIRECTION_UNSPECIFIED - Не определен. */
    SIGNAL_DIRECTION_UNSPECIFIED = 0,
    /** SIGNAL_DIRECTION_BUY - Покупка. */
    SIGNAL_DIRECTION_BUY = 1,
    /** SIGNAL_DIRECTION_SELL - Продажа. */
    SIGNAL_DIRECTION_SELL = 2,
    UNRECOGNIZED = -1
}
export declare function signalDirectionFromJSON(object: any): SignalDirection;
export declare function signalDirectionToJSON(object: SignalDirection): string;
/** Статус сигнала. */
export declare enum SignalState {
    /** SIGNAL_STATE_UNSPECIFIED - Не определен. */
    SIGNAL_STATE_UNSPECIFIED = 0,
    /** SIGNAL_STATE_ACTIVE - Активный сигнал. */
    SIGNAL_STATE_ACTIVE = 1,
    /** SIGNAL_STATE_CLOSED - Закрытый сигнал. */
    SIGNAL_STATE_CLOSED = 2,
    /** SIGNAL_STATE_ALL - Все состояния. */
    SIGNAL_STATE_ALL = 3,
    UNRECOGNIZED = -1
}
export declare function signalStateFromJSON(object: any): SignalState;
export declare function signalStateToJSON(object: SignalState): string;
/** Запрос стратегий. */
export interface GetStrategiesRequest {
    /** Идентификатор стратегии */
    strategyId?: string | undefined;
}
/** Стратегии */
export interface GetStrategiesResponse {
    strategies: Strategy[];
}
/** Стратегия */
export interface Strategy {
    /** Идентификатор стратегии. */
    strategyId: string;
    /** Название стратегии. */
    strategyName: string;
    /** Описание стратегии. */
    strategyDescription?: string | undefined;
    /** Ссылка на страницу с описанием стратегии. */
    strategyUrl?: string | undefined;
    /** Тип стратегии. */
    strategyType: StrategyType;
    /** Количество активных сигналов. */
    activeSignals: number;
    /** Общее количество сигналов. */
    totalSignals: number;
    /** Среднее время нахождения сигнала в позиции. */
    timeInPosition: number;
    /** Средняя доходность сигнала в стратегии. */
    averageSignalYield?: Quotation | undefined;
    /** Средняя доходность сигналов в стратегии за последний год. */
    averageSignalYieldYear?: Quotation | undefined;
    /** Доходность стратегии. */
    yield?: Quotation | undefined;
    /** Доходность стратегии за последний год. */
    yieldYear?: Quotation | undefined;
}
/** Запрос сигналов. */
export interface GetSignalsRequest {
    /** Идентификатор сигнала. */
    signalId?: string | undefined;
    /** Идентификатор стратегии. */
    strategyId?: string | undefined;
    /** Тип стратегии. */
    strategyType?: StrategyType | undefined;
    /** Идентификатор бумаги */
    instrumentUid?: string | undefined;
    /** Дата начала запрашиваемого интервала в часовом поясе UTC. */
    from?: Date | undefined;
    /** Дата конца запрашиваемого интервала  в часовом поясе UTC. */
    to?: Date | undefined;
    /** Направление сигнала. */
    direction?: SignalDirection | undefined;
    /** Состояние сигнала. */
    active?: SignalState | undefined;
    /** Настройки пагинации. */
    paging?: Page | undefined;
}
/** Сигналы. */
export interface GetSignalsResponse {
    /** Массив сигналов. */
    signals: Signal[];
    /** Данные по пагинации. */
    paging?: PageResponse | undefined;
}
/** Сигнал. */
export interface Signal {
    /** Идентификатор сигнала. */
    signalId: string;
    /** Идентификатор стратегии. */
    strategyId: string;
    /** Название стратегии. */
    strategyName: string;
    /** Идентификатор бумаги. */
    instrumentUid: string;
    /** Дата и время создания сигнала  в часовом поясе UTC. */
    createDt?: Date | undefined;
    /** Направление сигнала */
    direction: SignalDirection;
    /** Цена бумаги на момент формирования сигнала */
    initialPrice?: Quotation | undefined;
    /** Дополнительная информация о сигнале. */
    info?: string | undefined;
    /** Название сигнала. */
    name: string;
    /** Целевая цена. */
    targetPrice?: Quotation | undefined;
    /** Дата и время дедлайна сигнала в часовом поясе UTC. */
    endDt?: Date | undefined;
    /** Вероятность сигнала. */
    probability?: number | undefined;
    /** Порог закрытия сигнала по стоплосс. */
    stoploss?: Quotation | undefined;
    /** Цена закрытия сигнала. */
    closePrice?: Quotation | undefined;
    /** Дата и время закрытия сигнала в часовом поясе UTC. */
    closeDt?: Date | undefined;
}
export declare const GetStrategiesRequest: {
    encode(message: GetStrategiesRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetStrategiesRequest;
    fromJSON(object: any): GetStrategiesRequest;
    toJSON(message: GetStrategiesRequest): unknown;
};
export declare const GetStrategiesResponse: {
    encode(message: GetStrategiesResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetStrategiesResponse;
    fromJSON(object: any): GetStrategiesResponse;
    toJSON(message: GetStrategiesResponse): unknown;
};
export declare const Strategy: {
    encode(message: Strategy, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Strategy;
    fromJSON(object: any): Strategy;
    toJSON(message: Strategy): unknown;
};
export declare const GetSignalsRequest: {
    encode(message: GetSignalsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetSignalsRequest;
    fromJSON(object: any): GetSignalsRequest;
    toJSON(message: GetSignalsRequest): unknown;
};
export declare const GetSignalsResponse: {
    encode(message: GetSignalsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetSignalsResponse;
    fromJSON(object: any): GetSignalsResponse;
    toJSON(message: GetSignalsResponse): unknown;
};
export declare const Signal: {
    encode(message: Signal, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Signal;
    fromJSON(object: any): Signal;
    toJSON(message: Signal): unknown;
};
/** Сервис для получения технических сигналов и мнений аналитиков по инструментам */
export type SignalServiceDefinition = typeof SignalServiceDefinition;
export declare const SignalServiceDefinition: {
    readonly name: "SignalService";
    readonly fullName: "tinkoff.public.invest.api.contract.v1.SignalService";
    readonly methods: {
        /** Запросить стратегии. */
        readonly getStrategies: {
            readonly name: "GetStrategies";
            readonly requestType: {
                encode(message: GetStrategiesRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetStrategiesRequest;
                fromJSON(object: any): GetStrategiesRequest;
                toJSON(message: GetStrategiesRequest): unknown;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: GetStrategiesResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetStrategiesResponse;
                fromJSON(object: any): GetStrategiesResponse;
                toJSON(message: GetStrategiesResponse): unknown;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Запросить сигналы. */
        readonly getSignals: {
            readonly name: "GetSignals";
            readonly requestType: {
                encode(message: GetSignalsRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetSignalsRequest;
                fromJSON(object: any): GetSignalsRequest;
                toJSON(message: GetSignalsRequest): unknown;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: GetSignalsResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetSignalsResponse;
                fromJSON(object: any): GetSignalsResponse;
                toJSON(message: GetSignalsResponse): unknown;
            };
            readonly responseStream: false;
            readonly options: {};
        };
    };
};
export interface SignalServiceImplementation<CallContextExt = {}> {
    /** Запросить стратегии. */
    getStrategies(request: GetStrategiesRequest, context: CallContext & CallContextExt): Promise<GetStrategiesResponse>;
    /** Запросить сигналы. */
    getSignals(request: GetSignalsRequest, context: CallContext & CallContextExt): Promise<GetSignalsResponse>;
}
export interface SignalServiceClient<CallOptionsExt = {}> {
    /** Запросить стратегии. */
    getStrategies(request: GetStrategiesRequest, options?: CallOptions & CallOptionsExt): Promise<GetStrategiesResponse>;
    /** Запросить сигналы. */
    getSignals(request: GetSignalsRequest, options?: CallOptions & CallOptionsExt): Promise<GetSignalsResponse>;
}
//# sourceMappingURL=signals.d.ts.map