import { Nullable, UserParameters } from './index.d'; import { ConstructorClientOptions, Facet, Feature, Group, NetworkParameters, RequestFeature, RequestFeatureVariant, SortOption, FilterExpression, ResultSources, } from '.'; export default Quizzes; export interface QuizzesParameters { answers: any[]; section?: string; quizVersionId?: string; quizSessionId?: string; } export interface NextQuestionQuizzesParameters extends QuizzesParameters { skipTracking?: boolean; } export interface QuizzesResultsParameters extends QuizzesParameters { answers: any[]; page?: number; resultsPerPage?: number; filters?: Record; } declare class Quizzes { constructor(options: ConstructorClientOptions); options: ConstructorClientOptions; getQuizNextQuestion( quizId: string, parameters?: NextQuestionQuizzesParameters, userParameters?: UserParameters, networkParameters?: NetworkParameters ): Promise; getQuizResults( quizId: string, parameters?: QuizzesResultsParameters, userParameters?: UserParameters, networkParameters?: NetworkParameters ): Promise; } /* quizzes results returned from server */ export interface NextQuestionResponse extends Record { next_question: Question; quiz_version_id: string; quiz_id: string; quiz_session_id: string; total_questions: number; } export interface QuizResultsResponse extends Record { request?: { filters?: Record; fmt_options: Record; num_results_per_page: number; page: number; section: string; sort_by: string; sort_order: string; features: Partial; feature_variants: Partial; collection_filter_expression: FilterExpression; term: string; }; response?: { result_sources: Partial; facets: Partial[]; groups: Partial[]; results: Partial[]; sort_options: Partial[]; refined_content: Record[]; total_num_results: number; features: Partial[]; }; result_id?: string; quiz_version_id: string; quiz_session_id: string; quiz_id: string; } export interface QuizResultData extends Record { matched_terms: string[]; data: { id: string; [key: string]: any; }; value: string; is_slotted: false; labels: Record; variations: Record[]; } export type Question = SelectQuestion | OpenQuestion | CoverQuestion export interface BaseQuestion extends Record { id: number; title: string; description: string; cta_text: Nullable; images?: Nullable; } export interface SelectQuestion extends BaseQuestion { type: 'single' | 'multiple' options: QuestionOption[]; } export interface OpenQuestion extends BaseQuestion { type: 'open' inputPlaceholder?: Nullable; } export interface CoverQuestion extends BaseQuestion { type: 'cover' } export interface QuizResult extends Record { filter_expression: Record; results_url: string; } export interface QuestionOption extends Record { id: number; value: string; attribute: Nullable<{ name: string; value: string; }>; images?: Nullable; } export interface QuestionImages extends Record { primary_url?: Nullable; primary_alt?: Nullable; secondary_url?: Nullable; secondary_alt?: Nullable; }