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 { ResourceEncoder } from './resource-encoder'; import { ResourceOperationOptions, ResourceOperationStrategy } from './shared'; import { UrlRewriter } from './url-rewriter'; export declare type ResourceCreateOptions = ResourceOperationOptions; export declare type ResourceDeleteOptions = ResourceOperationOptions; export declare type ResourceUpdateOptions = ResourceOperationOptions; export declare const RESOURCE_CREATE_STRATEGY: InjectionToken; export declare const RESOURCE_UPDATE_STRATEGY: InjectionToken; export declare const RESOURCE_DELETE_STRATEGY: InjectionToken; export declare class ResourceWriter extends ResourceClient { readonly createStrategy: ResourceOperationStrategy; readonly updateStrategy: ResourceOperationStrategy; readonly deleteStrategy: ResourceOperationStrategy; readonly encoder: ResourceEncoder | undefined; /** * @param createStrategy Gets the {@link ResourceOperationStrategy} used for update operations * @param updateStrategy Gets the {@link ResourceOperationStrategy} used for delete operations * @param deleteStrategy Gets the {@link ResourceOperationStrategy} used for delete operations * @param encoder Gets the {@link ResourceEncoder} instance for the writer */ constructor(config: ClientConfig, http: HttpClient, urlRewriter: UrlRewriter, createStrategy: ResourceOperationStrategy, updateStrategy: ResourceOperationStrategy, deleteStrategy: ResourceOperationStrategy, encoder: ResourceEncoder | undefined); create(type: Type, resource: Partial, options?: ResourceCreateOptions): Observable; update(type: Type, id: NonNullable, resource: Partial, options?: ResourceUpdateOptions): Observable; delete(type: Type, id: NonNullable, options?: ResourceDeleteOptions): Observable; }