import { Observable } from 'rxjs'; import { HalOptions } from './rest.service'; import { SubtypeBuilder } from './subtypeBuilder'; export interface Link { href: string; templated?: boolean; } export interface Links { [key: string]: Link; } export declare abstract class Resource { proxyUrl: string; rootUrl: string; _links: any; constructor(); _subtypes: Map; subtypes: Map; 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; addRelation(relation: string, resource: T): Observable; updateRelation(relation: string, resource: T): Observable; substituteRelation(relation: string, resource: T): Observable; deleteRelation(relation: string, resource: T): Observable; private getResourceUrl; private getRelationLinkHref; private existRelationLink; }