/** * Schools Resource * * Schools are a filtered view of organizations with nested resources. */ import { Paginator } from '../../lib'; import type { LineItemCreateInput } from '@timeback/types/zod'; import type { AcademicSession, AcademicSessionFilterFields, Class, ClassFilterFields, Course, CourseFilterFields, CreateResponse, Enrollment, EnrollmentFilterFields, LineItem, LineItemFilterFields, ListParamsNoSearch, OneRosterTransportLike, Organization, SchoolsCallable, ScoreScale, ScoreScaleFilterFields, User, UserFilterFields } from '../../types'; /** * Scoped resource for a specific class within a school. * * Access via `client.schools(schoolId).class(classId)`. * * @example * ```typescript * const enrollments = await client.schools(schoolId).class(classId).enrollments() * ``` */ declare class ScopedSchoolClassResource { private readonly transport; private readonly basePath; constructor(transport: OneRosterTransportLike, schoolId: string, classId: string); /** * List enrollments for this class within this school. * @param params - Optional `where` clause and pagination parameters * @returns Promise resolving to enrollment array */ enrollments(params?: ListParamsNoSearch): Promise; /** * Stream enrollments with lazy pagination. * @param params - Optional `where` clause and pagination parameters * @returns Paginator for streaming enrollments */ streamEnrollments(params?: ListParamsNoSearch): Paginator; /** * List students in this class at this school. * @param params - Optional `where` clause and pagination parameters * @returns Promise resolving to user array */ students(params?: ListParamsNoSearch): Promise; /** * Stream students with lazy pagination. * @param params - Optional `where` clause and pagination parameters * @returns Paginator for streaming students */ streamStudents(params?: ListParamsNoSearch): Paginator; /** * List teachers for this class at this school. * @param params - Optional `where` clause and pagination parameters * @returns Promise resolving to user array */ teachers(params?: ListParamsNoSearch): Promise; /** * Stream teachers with lazy pagination. * @param params - Optional `where` clause and pagination parameters * @returns Paginator for streaming teachers */ streamTeachers(params?: ListParamsNoSearch): Paginator; } /** * Scoped resource for operations on a specific school. * * Access via `client.schools(schoolId)`. * * @example * ```typescript * const school = await client.schools(schoolId).get() * const classes = await client.schools(schoolId).classes() * const students = await client.schools(schoolId).students() * const teachers = await client.schools(schoolId).teachers() * const lineItems = await client.schools(schoolId).lineItems() * const enrollments = await client.schools(schoolId).class(classId).enrollments() * ``` */ export declare class ScopedSchoolResource { private readonly transport; private readonly basePath; private readonly gradebookPath; private readonly schoolId; constructor(transport: OneRosterTransportLike, schoolId: string); /** * Get the school details. * @returns The organization/school object */ get(): Promise; /** * Check whether this school exists. * @returns True if found, false for 404 */ exists(): Promise; /** * Scope to a specific class within this school. * @param classId - The class sourcedId * @returns Scoped class resource for school-class operations */ class(classId: string): ScopedSchoolClassResource; /** * List classes in this school. * @param params - Optional `where` clause and pagination parameters * @returns Promise resolving to class array */ classes(params?: ListParamsNoSearch): Promise; /** * Stream classes with lazy pagination. * @param params - Optional `where` clause and pagination parameters * @returns Paginator for streaming classes */ streamClasses(params?: ListParamsNoSearch): Paginator; /** * List enrollments in this school. * @param params - Optional `where` clause and pagination parameters * @returns Promise resolving to enrollment array */ enrollments(params?: ListParamsNoSearch): Promise; /** * Stream enrollments with lazy pagination. * @param params - Optional `where` clause and pagination parameters * @returns Paginator for streaming enrollments */ streamEnrollments(params?: ListParamsNoSearch): Paginator; /** * List students in this school. * @param params - Optional `where` clause and pagination parameters * @returns Promise resolving to user array */ students(params?: ListParamsNoSearch): Promise; /** * Stream students with lazy pagination. * @param params - Optional `where` clause and pagination parameters * @returns Paginator for streaming students */ streamStudents(params?: ListParamsNoSearch): Paginator; /** * List teachers in this school. * @param params - Optional `where` clause and pagination parameters * @returns Promise resolving to user array */ teachers(params?: ListParamsNoSearch): Promise; /** * Stream teachers with lazy pagination. * @param params - Optional `where` clause and pagination parameters * @returns Paginator for streaming teachers */ streamTeachers(params?: ListParamsNoSearch): Paginator; /** * List courses in this school. * @param params - Optional `where` clause and pagination parameters * @returns Promise resolving to course array */ courses(params?: ListParamsNoSearch): Promise; /** * Stream courses with lazy pagination. * @param params - Optional `where` clause and pagination parameters * @returns Paginator for streaming courses */ streamCourses(params?: ListParamsNoSearch): Paginator; /** * List terms/academic sessions for this school. * @param params - Optional `where` clause and pagination parameters * @returns Promise resolving to academic session array */ terms(params?: ListParamsNoSearch): Promise; /** * Stream terms with lazy pagination. * @param params - Optional `where` clause and pagination parameters * @returns Paginator for streaming academic sessions */ streamTerms(params?: ListParamsNoSearch): Paginator; /** * List line items (assignments) in this school. * @param params - Optional `where` clause and pagination parameters * @returns Promise resolving to line item array */ lineItems(params?: ListParamsNoSearch): Promise; /** * Stream line items with lazy pagination. * @param params - Optional `where` clause and pagination parameters * @returns Paginator for streaming line items */ streamLineItems(params?: ListParamsNoSearch): Paginator; /** * Create a line item (assignment) in this school. * * @param data - Line item data * @returns Create response with sourcedIdPairs * @example * ```typescript * await client.schools(schoolId).createLineItem({ * title: 'Homework 1', * class: { sourcedId: classId }, * school: { sourcedId: schoolId }, * category: { sourcedId: categoryId }, * assignDate: '2024-12-20', * dueDate: '2024-12-27', * status: 'active', * }) * ``` */ createLineItem(data: LineItemCreateInput): Promise; /** * List score scales for this school. * @param params - Optional `where` clause and pagination parameters * @returns Promise resolving to score scale array */ scoreScales(params?: ListParamsNoSearch): Promise; /** * Stream score scales with lazy pagination. * @param params - Optional `where` clause and pagination parameters * @returns Paginator for streaming score scales */ streamScoreScales(params?: ListParamsNoSearch): Paginator; } /** * Create a callable schools resource. * @param transport - OneRoster transport instance * @returns Callable resource for schools */ export declare function createSchoolsResource(transport: OneRosterTransportLike): SchoolsCallable; export {}; //# sourceMappingURL=schools.d.ts.map