import { BrakesOptions } from './brakes-options.interface';
import { BrakesSnapshot } from './brakes-snapshot.interface';
export interface IBrakes {
    healthCheck(healthCheck: Function): any;
    fallback(healthCheck: Function): any;
    slaveCircuit(method: Function, fallback?: Function, options?: BrakesOptions): any;
    on(event: 'success', handler: (data: any) => void): any;
    on(event: 'timeout', handler: (data: any, e: Error, exec: Function) => void): any;
    on(event: 'failure', handler: (data: any, e: Error, exec: Function) => void): any;
    on(event: 'snapshot', handler: (snapshot: BrakesSnapshot) => void): any;
    on(event: 'circuitClosed', handler: () => void): any;
    on(event: 'circuitOpen', handler: () => void): any;
    on(event: 'healthCheckFailed', handler: (e: Error) => void): any;
}
