import { Newable } from '@aesop-fables/containr'; import { Observable } from 'rxjs'; import { IProjectionFactory, ProjectionConstructor, ProjectionContext } from '../Projections'; import { DataCompartment } from '../DataCompartment'; export declare function useProjection(constructor: ProjectionConstructor | IProjectionFactory | Newable): Projection; export declare class DataCompartmentProjection { private readonly compartment; constructor(compartment: DataCompartment); get loading$(): Observable; get value$(): Observable; } export declare class DataCompartmentProjectionFactory implements IProjectionFactory> { private readonly storageKey; private readonly key; private readonly id; constructor(storageKey: string, key: string, id: string | number); create(context: ProjectionContext): DataCompartmentProjection; } export declare function useRepositoryProjection(storageKey: string, key: keyof Registry, id: string | number): DataCompartmentProjection;