import { HttpClient } from '@angular/common/http'; import { InjectionToken, Type } from '@angular/core'; import { Observable } from 'rxjs'; import { ClientConfig } from './client-config'; import { ResourceClient } from './resource-client'; import { ResourceDecoder } from './resource-decoder'; import { ResourceFactory } from './resource-factory'; import { ResourceOperationOptions, ResourceOperationStrategy } from './shared'; import { UrlRewriter } from './url-rewriter'; export declare type ResourceFindOptions = ResourceOperationOptions; export declare type ResourceListOptions = ResourceOperationOptions; export declare const RESOURCE_FIND_STRATEGY: InjectionToken; export declare const RESOURCE_LIST_STRATEGY: InjectionToken; export declare class ResourceReader extends ResourceClient { readonly findStrategy: ResourceOperationStrategy; readonly listStrategy: ResourceOperationStrategy; readonly decoder: ResourceDecoder | undefined; readonly factory: ResourceFactory; /** * @param findStrategy Gets the {@link ResourceOperationStrategy} used for find operations * @param listStrategy Gets the {@link ResourceOperationStrategy} used for list operations * @param decoder Gets the {@link ResourceDecoder} instance for the reader * @param factory Gets the {@link ResourceFactory} instance for the reader */ constructor(config: ClientConfig, http: HttpClient, urlRewriter: UrlRewriter, findStrategy: ResourceOperationStrategy, listStrategy: ResourceOperationStrategy, decoder: ResourceDecoder | undefined, factory: ResourceFactory); find(type: Type, id: NonNullable, options?: ResourceFindOptions): Observable; list(type: Type, options?: ResourceListOptions): Observable; }