import { HttpErrorResponse } from '@angular/common/http'; import { Subscription } from 'rxjs'; import { IDeleteOptions, IGetOptions, IPostOptions, IPutOptions } from '../verbs/verbs.model'; export abstract class AbstractAgent { private _options: | IGetOptions | IPostOptions | IPutOptions | IDeleteOptions; protected get options(): | IGetOptions | IPostOptions | IPutOptions | IDeleteOptions { return this._options; } protected set options( value: | IGetOptions | IPostOptions | IPutOptions | IDeleteOptions, ) { this._options = value; } protected activeSubscription: Subscription; constructor() {} abstract success(data: any): void; abstract error(httpErrorResponse: HttpErrorResponse): void; abstract request(data: any): void; abstract subscribe(): void; }