import { CommandProperties } from './commandProperties'; import { AbstractCommand } from './abstractCommand'; import { Semaphore } from './semaphore'; import { ExecutionResult } from './executionResult'; import { IContainer } from '../di/resolvers'; import { RequestContext } from '../pipeline/requestContext'; export interface CommandInfo { commandKey: string; commandGroup: string; timeout: number; isErrorHandler: (error: any) => any; metricsConfig: any; circuitConfig: any; requestVolumeRejectionThreshold: number; } export interface IHasFallbackCommand { fallback(...args: any[]): Promise; } export declare class HystrixCommand { private properties; private handler; status: ExecutionResult; private running; private _arguments; private hystrixMetrics; private schemaName; private command; constructor(properties: CommandProperties, command: AbstractCommand, handler: Function, context: RequestContext, container: IContainer, args: any); readonly circuitBreaker: any; readonly semaphore: Semaphore; run(): Promise; private getFallbackOrThrowException(eventType, failureType, message, error); private onExecutionError(e); private logInfo(msg); private isUnrecoverable(e); private getLogMessagePrefix(); private getCommandName(); protected recordTotalExecutionTime(duration: any): void; }