import * as rxjs from 'rxjs'; import { Observable } from 'rxjs'; import { ComponentStore } from '@ngrx/component-store'; type Mode = 'create' | 'update'; interface EntityState { mode: Mode; entityId: string; entity: Entity; } declare const tryCatch: (promise: Promise) => Promise; declare abstract class EntityStore, Entity> extends ComponentStore { get entity(): Entity; mode$: Observable; entityId$: Observable; entity$: Observable; setMode: (observableOrValue: Mode | Observable) => rxjs.Subscription; setEntityId: (observableOrValue: string | Observable) => rxjs.Subscription; setEntity: Entity extends void ? () => void : (observableOrValue: Entity | Observable) => rxjs.Subscription; constructor(initialState?: S); getEntityIdAndMode: (observableOrValue: string | Observable) => rxjs.Subscription; getEntity: (observableOrValue: string | Observable) => rxjs.Subscription; createEntity(value: Partial): Promise; updateEntity(value: Partial): Promise; abstract _getEntity(idOrParams: string): Observable; abstract _createEntity(entity: Entity): Promise; abstract _updateEntity(entity: Entity): Promise; } export { EntityStore, tryCatch }; export type { EntityState, Mode };