import { LdSet, LdoBase } from "@ldo/ldo"; //#region src/types/ILinkQuery.d.ts /** * Link Query Input */ type LQInput = LQInputObject; type LQInputObject = Partial<{ [key in Exclude]: LQInputFlattenSet }>; type LQInputSubSet = Type extends object ? LQInputObject : true; type LQInputFlattenSet = Type extends LdSet ? LQInputSubSet : LQInputSubSet; /** * Link Query Return */ type LQReturn> = LQReturnObject; type LQReturnObject> = { [key in Exclude, "@context"> as undefined extends Input[key] ? never : key]: Input[key] extends LQInputFlattenSet ? undefined extends Type[key] ? LQReturnExpandSet | undefined : LQReturnExpandSet : never }; type LQReturnSubSet = Input extends LQInputSubSet ? Input extends LQInputObject ? Input extends true ? Type : LQReturnObject : Type : never; type LQReturnExpandSet> = NonNullable extends LdSet ? LdSet> : LQReturnSubSet; /** * Helper Functions */ type ExpandDeep = T extends LdSet ? LdSet> : T extends object ? { [K in keyof T]: ExpandDeep } : T; /** * ILinkQuery: Manages resources in a link query */ interface LinkQueryRunOptions { reload?: boolean; } interface ILinkQuery> { run(options?: LinkQueryRunOptions): Promise>>; subscribe(): Promise; unsubscribe(subscriptionId: string): Promise; unsubscribeAll(): Promise; fromSubject(): ExpandDeep>; } //#endregion export { ExpandDeep, ILinkQuery, LQInput, LQInputFlattenSet, LQInputObject, LQInputSubSet, LQReturn, LQReturnExpandSet, LQReturnObject, LQReturnSubSet, LinkQueryRunOptions }; //# sourceMappingURL=ILinkQuery.d.cts.map