import { HalOptions } from './rest.service'; import { SubTypeBuilder } from './subtype-builder'; import { Observable } from 'rxjs/internal/Observable'; export declare type Link = { href: string; templated?: boolean; }; export declare type Links = { [key: string]: Link; }; export declare abstract class Resource { proxyUrl: string; rootUrl: string; _links: any; _subtypes: Map; subtypes: Map; constructor(); getRelation(type: { new (): T; }, relation: string, builder?: SubTypeBuilder, expireMs?: number, isCacheActive?: boolean): Observable; getRelationArray(type: { new (): T; }, relation: string, _embedded?: string, options?: HalOptions, builder?: SubTypeBuilder, expireMs?: number, isCacheActive?: boolean): Observable; getProjection(type: { new (): T; }, resource: string, id: string, projectionName: string, expireMs?: number, isCacheActive?: boolean): Observable; getProjectionArray(type: { new (): T; }, resource: string, projectionName: string, expireMs?: number, isCacheActive?: boolean): Observable; private getResourceUrl; private getRelationLinkHref; private existRelationLink; addRelation(relation: string, resource: T): Observable; updateRelation(relation: string, resource: T): Observable; substituteRelation(relation: string, resource: T): Observable; deleteRelation(relation: string, resource: T): Observable; }