/** * OneRoster Client Factory * * Creates OneRosterClient classes bound to specific provider registries. * Enables platform-specific packages and custom deployments. */ import { AssessmentResultsResource } from './resources/assessment'; import { CategoriesResource, ResultsResource, ScoreScalesResource } from './resources/gradebook'; import { AcademicSessionsResource, DemographicsResource, EnrollmentsResource, GradingPeriodsResource, OrgsResource } from './resources/rostering'; import type { AuthCheckResult, ProviderRegistry, TimebackProvider } from '@timeback/internal-client-infra'; import type { AssessmentLineItemsCallable, ClassesCallable, CoursesCallable, LineItemsCallable, OneRosterClientConfig, OneRosterTransportLike, ResourcesCallable, SchoolsCallable, StudentsCallable, TeachersCallable, TermsCallable, UsersCallable } from './types'; /** * Create a OneRosterClient class bound to a specific provider registry. * * This factory enables: * - Platform-specific packages (different default registries) * - Custom registries for enterprise deployments * - Easier testing with mock registries * * @param registry - Provider registry to use (defaults to all Timeback platforms) * @returns OneRosterClient class bound to the registry * * @example * ```typescript * // Default usage (all platforms) * const OneRosterClient = createOneRosterClient() * const client = new OneRosterClient({ env: 'staging', auth: { ... } }) * ``` * * @example * ```typescript * // BeyondAI-only package * const BEYONDAI_REGISTRY = { * defaultPlatform: 'BEYOND_AI', * templates: { * BEYOND_AI: { * staging: { platform: 'BEYOND_AI', env: 'staging' }, * production: { platform: 'BEYOND_AI', env: 'production' }, * }, * }, * } * export const OneRosterClient = createOneRosterClient(BEYONDAI_REGISTRY) * ``` */ export declare function createOneRosterClient(registry?: ProviderRegistry): { new (config?: OneRosterClientConfig): { /** @internal */ readonly transport: OneRosterTransportLike; /** @internal */ readonly _provider?: TimebackProvider | undefined; /** Query and manage user accounts across the district, including students, teachers, and staff */ readonly users: UsersCallable; /** Query and manage student records, including their classes, enrollments, and demographics */ readonly students: StudentsCallable; /** Query and manage teacher records, including their class assignments and org affiliations */ readonly teachers: TeachersCallable; /** Query and manage organizational hierarchy including districts, schools, and departments */ readonly orgs: OrgsResource; /** Query and manage school records within the district hierarchy */ readonly schools: SchoolsCallable; /** Query and manage class sections, including their teachers, students, and schedules */ readonly classes: ClassesCallable; /** Query and manage course catalog definitions and subject metadata */ readonly courses: CoursesCallable; /** Query and manage student and teacher enrollments in classes */ readonly enrollments: EnrollmentsResource; /** Query and manage academic sessions like school years and semesters */ readonly academicSessions: AcademicSessionsResource; /** Query and manage academic terms within sessions */ readonly terms: TermsCallable; /** Query and manage grading periods for progress reporting */ readonly gradingPeriods: GradingPeriodsResource; /** Query demographic information including race, ethnicity, and other protected data */ readonly demographics: DemographicsResource; /** Query and manage gradebook line items like assignments, quizzes, and assessments */ readonly lineItems: LineItemsCallable; /** Query and manage student grades and scores for line items */ readonly results: ResultsResource; /** Query and manage grading categories for organizing line items (e.g., Homework, Tests) */ readonly categories: CategoriesResource; /** Query and manage score scales that define grading rubrics and point values */ readonly scoreScales: ScoreScalesResource; /** Query and manage formal assessment line items for standardized testing */ readonly assessmentLineItems: AssessmentLineItemsCallable; /** Query and manage student results from formal assessments */ readonly assessmentResults: AssessmentResultsResource; /** Query and manage digital learning resources (content, activities, materials) */ readonly resources: ResourcesCallable; /** * Get the underlying transport for advanced use cases. * @returns The transport instance used by this client */ getTransport(): OneRosterTransportLike; /** * Verify that OAuth authentication is working. * @returns Auth check result * @throws {Error} If client was initialized with custom transport (no provider) */ checkAuth(): Promise; }; }; //# sourceMappingURL=factory.d.ts.map