/** * Base Types * * Common types shared across QTI resources. */ /** * Assessment item interaction types. */ export type AssessmentItemType = 'choice' | 'text-entry' | 'extended-text' | 'inline-choice' | 'match' | 'order' | 'associate' | 'select-point' | 'graphic-order' | 'graphic-associate' | 'graphic-gap-match' | 'hotspot' | 'hottext' | 'slider' | 'drawing' | 'media' | 'upload'; /** * Cardinality of a response or outcome variable. */ export type Cardinality = 'single' | 'multiple' | 'ordered' | 'record'; /** * Base type of a response or outcome variable. */ export type BaseType = 'identifier' | 'boolean' | 'integer' | 'float' | 'string' | 'point' | 'pair' | 'directedPair' | 'duration' | 'file' | 'uri'; /** * Difficulty level for assessment items. */ export type Difficulty = 'easy' | 'medium' | 'hard'; /** * Grade level (K-12 + pre-K as -1). */ export type Grade = -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13; /** * Navigation mode for test parts. */ export type NavigationMode = 'linear' | 'nonlinear'; /** * Submission mode for test parts. */ export type SubmissionMode = 'individual' | 'simultaneous'; /** * Show/hide indicator for feedback. */ export type ShowHide = 'show' | 'hide'; /** * Schema type for validation. */ export type ValidationSchema = 'test' | 'item' | 'stimulus'; /** * Sort order for list responses. */ export type SortOrder = 'asc' | 'desc'; /** * Feedback type. */ export type FeedbackType = 'QUESTION' | 'LESSON'; /** * Correct response value. */ export interface CorrectResponse { value: string[]; } /** * Response declaration for assessment items. */ export interface ResponseDeclaration { identifier: string; cardinality: Cardinality; baseType?: BaseType; correctResponse: CorrectResponse; } /** * Outcome declaration for items and tests. */ export interface OutcomeDeclaration { identifier: string; cardinality: Cardinality; baseType?: BaseType; } /** * Test outcome declaration with additional properties. */ export interface TestOutcomeDeclaration { identifier: string; cardinality?: Cardinality; baseType: BaseType; normalMaximum?: number; normalMinimum?: number; defaultValue?: { value?: unknown; }; } /** * Inline feedback configuration. */ export interface InlineFeedback { outcomeIdentifier: string; variableIdentifier: string; } /** * Response processing configuration. */ export interface ResponseProcessing { templateType: 'match_correct' | 'map_response'; responseDeclarationIdentifier: string; outcomeIdentifier: string; correctResponseIdentifier: string; incorrectResponseIdentifier: string; inlineFeedback?: InlineFeedback; } /** * Learning objective set for metadata. */ export interface LearningObjectiveSet { source: string; learningObjectiveIds: string[]; } /** * Item metadata. */ export interface ItemMetadata { subject?: string; grade?: Grade; difficulty?: Difficulty; learningObjectiveSet?: LearningObjectiveSet[]; } /** * Modal feedback element. */ export interface ModalFeedback { outcomeIdentifier: string; identifier: string; showHide: ShowHide; content: string; title: string; } /** * Inline feedback element. */ export interface FeedbackInline { outcomeIdentifier: string; identifier: string; showHide: ShowHide; content: string; class: string[]; } /** * Block feedback element. */ export interface FeedbackBlock { outcomeIdentifier: string; identifier: string; showHide: ShowHide; content: string; class: string[]; } /** * Stylesheet reference. */ export interface Stylesheet { href: string; type: string; } /** * Catalog info entry. */ export interface CatalogInfo { id: string; support: string; content: string; } /** * Pagination metadata from QTI list responses. */ export interface PaginationMeta { /** Total items across all pages */ total: number; /** Current page number (1-indexed) */ page: number; /** Total number of pages */ pages: number; /** Items per page */ limit: number; /** Sort field */ sort: string; /** Sort order */ order: SortOrder; } //# sourceMappingURL=base.d.ts.map