35 lines
1.4 KiB
TypeScript
35 lines
1.4 KiB
TypeScript
import type { DefinitionPage } from "./quixos/orch_pb.js";
|
|||
|
|
export type { DefinitionPage, DefinitionIdentity, DefinitionRecord, ReflectedAtom, ReflectedInterface, ReflectedConformance, ReflectedQuery, ReflectedIndex, } from "./quixos/orch_pb.js";
|
||
|
|
export type ReflectionKind = "active" | "atoms" | "interfaces" | "conformances" | "queries" | "indexes";
|
||
|
|
export type ReflectionSelector<K extends string = ReflectionKind> = K extends "active" ? {
|
||
|
|
kind: K;
|
||
|
|
} : K extends "atoms" ? {
|
||
|
|
kind: K;
|
||
|
|
ids?: string[];
|
||
|
|
interfaceRevisionId?: string;
|
||
|
|
} : K extends "conformances" ? {
|
||
|
|
kind: K;
|
||
|
|
ids?: string[];
|
||
|
|
atomId?: string;
|
||
|
|
interfaceRevisionId?: string;
|
||
|
|
} : K extends "queries" ? {
|
||
|
|
kind: K;
|
||
|
|
ids?: string[];
|
||
|
|
packageRevisionId?: string;
|
||
|
|
interfaceRevisionId?: string;
|
||
|
|
} : {
|
||
|
|
kind: K;
|
||
|
|
ids?: string[];
|
||
|
|
};
|
||
|
|
export type ReflectionRequest<K extends string = ReflectionKind> = {
|
||
|
|
selector: ReflectionSelector<K>;
|
||
|
|
first?: number;
|
||
|
|
after?: string;
|
||
|
|
snapshot?: string;
|
||
|
|
};
|
||
|
|
/** Read-only metadata. Returned capability IDs confer no invocation authority. */
|
||
|
|
export type QxReflectionPort<K extends string = ReflectionKind> = {
|
||
|
|
read(request: ReflectionRequest<K>): Promise<DefinitionPage>;
|
||
|
|
watch(request: Omit<ReflectionRequest<K>, "after" | "snapshot">, signal: AbortSignal): AsyncIterable<DefinitionPage>;
|
||
|
|
};
|
||
|
|
//# sourceMappingURL=reflection.d.ts.map
|