import { Decoder, Encoder } from '@iotize/common/converter/api'; import { Observable } from 'rxjs'; import { TapRequestFrame, TapResponseFrame } from './generated/models'; import { TapClientInterface } from './tap-client.interface'; export interface EncryptionAlgo extends Encoder, Decoder { setOptions(options: any): void; } export interface ExecutionContext { request: TapRequestFrame; bodyDecoder?: any; client: TapClientInterface; } export interface RequestHandler { handle(req: ExecutionContext): Observable; } export interface RequestInterceptor { intercept(req: ExecutionContext, next: RequestHandler): Observable; } export type RequestInterceptorFct = (req: ExecutionContext, next: RequestHandler) => Observable; export type RequestInterceptorType = RequestInterceptorFct | RequestInterceptor;