import { VertexQuery as VertexQuery$1 } from "./util/vertex-query/index.js"; import { AssertNoInvalidExpandKeys } from "./util/custom-vertex-export/assert-no-invalid-expand-keys.js"; import { CustomVertexExport } from "./util/custom-vertex-export/index.js"; import { CompanyVertex } from "./companies.js"; import { PeriodVertex } from "./periods.js"; import { RootIntervalVertex } from "./root-intervals.js"; import { DivisionSettingsVertex } from "./division-settings.js"; import { GenerationVertex } from "./generations.js"; import { DivisionVertex } from "./divisions.js"; import { PersonVertex } from "./persons.js"; import { LocationVertex } from "./locations.js"; import { LinkedEventsSetVertex } from "./linked-events-sets.js"; import { UserVertex } from "./users.js"; import { ThreadVertex } from "./threads.js"; import { SyllabusVertex } from "./syllabuses.js"; import { CalendarEventVertex, EventVertex, ScheduleEventVertex } from "./events.js"; import { CourseVertex } from "./courses.js"; import { ExceptionVertex } from "./exceptions.js"; import { GroupVertex } from "./groups.js"; import { LockedTimeVertex } from "./locked-times.js"; import { TeacherVertex } from "./teachers.js"; import { ConfigurationVertex } from "./configurations.js"; import { MessageVertex } from "./messages.js"; import { ConversationVertex } from "./conversations.js"; //#region src/core/interfaces/vertices/vertex-query.d.ts type VertexRecord = { divisions: DivisionVertex; divisionSettings: DivisionSettingsVertex; settings: DivisionSettingsVertex; teachers: TeacherVertex; exceptions: ExceptionVertex; events: EventVertex; scheduleEvents: ScheduleEventVertex; calendarEvents: CalendarEventVertex; courses: CourseVertex; generations: GenerationVertex; groups: GroupVertex; locations: LocationVertex; lockedTimes: LockedTimeVertex; linkedEventsSets: LinkedEventsSetVertex; periods: PeriodVertex; persons: PersonVertex; students: PersonVertex; rootIntervals: RootIntervalVertex; syllabuses: SyllabusVertex; configurations: ConfigurationVertex; companies: CompanyVertex; users: UserVertex; threads: ThreadVertex; conversations: ConversationVertex; messages: MessageVertex; }; type BaseQueryRecord = VertexQuery$1; /** * See {@link createVertexQuery} */ declare class VertexQuery & AssertNoInvalidExpandKeys> { private readonly _collection; private readonly _query; constructor(_collection: C, _query: Q); get collection(): C; get query(): Q; } /** * Infers the result type for a query created via createVertexQuery. * * @example * const personQuery = createVertexQuery('persons', { select: ['id', 'firstName'] }); * type PersonType = Infer; */ type Infer> = T extends VertexQuery ? CustomVertexExport : never; /** * Builds a typed vertex query for a given vertex type using a select/expand shape. * * Use together with Infer to obtain the serialized result type. * * @typeParam Q - The select/expand query shape for that vertex. * * @example * const groupQuery = createVertexQuery.group({ * select: ['id', 'displayName'], * expand: { members: { select: ['id'] } } * }); * type GroupType = Infer; */ declare namespace createVertexQuery { function division & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"divisions", Q>; function settings & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"settings", Q>; function exception & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"exceptions", Q>; function event & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"events", Q>; function scheduleEvent & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"scheduleEvents", Q>; function calendarEvent & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"calendarEvents", Q>; function course & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"courses", Q>; function generation & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"generations", Q>; function location & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"locations", Q>; function lockedTime & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"lockedTimes", Q>; function linkedEventsSet & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"linkedEventsSets", Q>; function period & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"periods", Q>; function person & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"persons", Q>; function student & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"students", Q>; function rootInterval & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"rootIntervals", Q>; function syllabus & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"syllabuses", Q>; function group & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"groups", Q>; function teacher & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"teachers", Q>; function configuration & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"configurations", Q>; function thread & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"threads", Q>; function user & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"users", Q>; function conversation & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"conversations", Q>; function message & AssertNoInvalidExpandKeys>(query: Q): VertexQuery<"messages", Q>; } //#endregion export { Infer, VertexQuery, createVertexQuery }; //# sourceMappingURL=vertex-query.d.ts.map