import { type Scope } from "../../types.ts";
import type { BaseType, ShapeType } from "@ng-org/shex-orm";
import { DeepSignalSet } from "@ng-org/alien-deepsignals";
/**
* Hook to subscribe to RDF data in the graph database using a shape, see {@link ShapeType}.
* The returned objects are as easy to use as other TypeScript objects.
*
* Returns a {@link DeepSignalSet} of objects matching the shape and that are within the scope.
* Establishes a 2-way binding: Modifications to the object are immediately committed,
* changes coming from the backend (or other components) cause an immediate rerender.
*
* @param shape The {@link ShapeType} the objects should have (generated by the shex-orm tool).
* @param scope The {@link Scope} as graph string or scope object with graphs and subjects.
* @returns A {@link DeepSignalSet} with the orm objects or an empty set, if still loading.\
* If the scope is explicitly set to `undefined`, an empty set is returned which errors
* if you try to make modifications on it.
*
* @example
* ```html
*
*
*
*