/** * Transport Layer * * HTTP transport for Edubridge API communication. */ import { BaseTransport } from '@timeback/internal-client-infra'; import type { EdubridgePaths, PaginatedResponse, RequestOptions } from '@timeback/internal-client-infra'; import type { EdubridgeTransportConfig } from '../types'; /** * HTTP transport layer for Edubridge API communication. * * Uses body-based pagination (totalCount, pageNumber, pageCount in response body). */ export declare class Transport extends BaseTransport { /** API path profiles for Edubridge operations */ readonly paths: EdubridgePaths; constructor(config: EdubridgeTransportConfig); /** * Make a paginated request using body-based pagination. * * Edubridge APIs return pagination metadata in the response body: * - `totalCount`: Total items across all pages * - `pageCount`: Total number of pages * - `pageNumber`: Current page (1-indexed) * * The returned `data` is the full response body. Use Paginator's `unwrapKey` * to extract the actual items (e.g., "users", "enrollments"). * * @template T - Expected item type in the response * @param path - API endpoint path * @param options - Request options * @returns Normalized paginated response with body as data */ requestPaginated(path: string, options?: RequestOptions): Promise>; /** * Extract error message from Edubridge API error response. * * Edubridge returns errors in array format: * - `errors[].message`: High-level error message * - `errors[].detail`: More specific error detail * - `errors[].meta.issues[]`: Field-level validation errors * * @param body - The error response body * @param fallback - Fallback message if extraction fails * @returns Human-readable error message with field details */ protected extractErrorMessage(body: unknown, fallback: string): string; } //# sourceMappingURL=transport.d.ts.map