/** * OneRoster Client * * Main entry point for the OneRoster SDK. */ /** * OneRoster API client for rostering and gradebook operations. * * Provides access to all OneRoster v1.2 resources including users, classes, * enrollments, courses, grades, and assessments. * * @example * ```typescript * // Environment mode (Timeback APIs) * const client = new OneRosterClient({ * env: 'staging', // or 'production' * auth: { * clientId: 'your-client-id', * clientSecret: 'your-client-secret', * }, * }) * ``` * * @example * ```typescript * // Platform selection * const client = new OneRosterClient({ * platform: 'LEARNWITH_AI', // or 'BEYOND_AI' (default) * env: 'production', * auth: { * clientId: 'your-client-id', * clientSecret: 'your-client-secret', * }, * }) * ``` * * @example * ```typescript * // Provider mode (pre-built provider) * import { TimebackProvider } from '@timeback/internal-client-infra' * * const provider = new TimebackProvider({ * platform: 'BEYOND_AI', * env: 'staging', * auth: { clientId: '...', clientSecret: '...' }, * }) * * const client = new OneRosterClient({ provider }) * ``` * * @example * ```typescript * // Explicit mode (custom OneRoster API) * const client = new OneRosterClient({ * baseUrl: 'https://api.example.com', * auth: { * clientId: 'your-client-id', * clientSecret: 'your-client-secret', * authUrl: 'https://auth.example.com/oauth2/token', * }, * }) * ``` * * @example * ```typescript * // Environment variables fallback * // Set ONEROSTER_BASE_URL, ONEROSTER_TOKEN_URL, * // ONEROSTER_CLIENT_ID, ONEROSTER_CLIENT_SECRET * const client = new OneRosterClient() * ``` * * @example * ```typescript * // Nested resources * const classes = await client.schools.for('school-id').classes() * const students = await client.classes.for('class-id').students() * ``` * * @remarks * The client supports four configuration modes: * * 1. **Provider mode**: `{ provider: TimebackProvider }` — Use a pre-built provider * 2. **Environment mode**: `{ env, auth }` — Connect to Timeback platforms * 3. **Explicit mode**: `{ baseUrl, auth: { authUrl } }` — Custom OneRoster API * 4. **Transport mode**: `{ transport }` — Use existing transport instance * * If no config is provided, the client reads from environment variables. * * @see {@link createOneRosterClient} for creating platform-specific clients */ export declare const OneRosterClient: { new (config?: import("./types").OneRosterClientConfig): { readonly transport: import("./types").OneRosterTransportLike; readonly _provider?: import("@timeback/internal-client-infra").TimebackProvider | undefined; readonly users: import("./types").UsersCallable; readonly students: import("./types").StudentsCallable; readonly teachers: import("./types").TeachersCallable; readonly orgs: import("./resources/rostering").OrgsResource; readonly schools: import("./types").SchoolsCallable; readonly classes: import("./types").ClassesCallable; readonly courses: import("./types").CoursesCallable; readonly enrollments: import("./resources/rostering").EnrollmentsResource; readonly academicSessions: import("./resources/rostering").AcademicSessionsResource; readonly terms: import("./types").TermsCallable; readonly gradingPeriods: import("./resources/rostering").GradingPeriodsResource; readonly demographics: import("./resources/rostering").DemographicsResource; readonly lineItems: import("./types").LineItemsCallable; readonly results: import("./resources/gradebook").ResultsResource; readonly categories: import("./resources/gradebook").CategoriesResource; readonly scoreScales: import("./resources/gradebook").ScoreScalesResource; readonly assessmentLineItems: import("./types").AssessmentLineItemsCallable; readonly assessmentResults: import("./resources/assessment").AssessmentResultsResource; readonly resources: import("./types").ResourcesCallable; getTransport(): import("./types").OneRosterTransportLike; checkAuth(): Promise; }; }; /** * Type representing an instance of OneRosterClient. * * Use this when you need to type a variable that holds a client instance. * * @example * ```typescript * function doSomething(client: OneRosterClientInstance) { * return client.users.list() * } * ``` */ export type { OneRosterClientInstance } from './types'; //# sourceMappingURL=client.d.ts.map