import { APIResource } from "../../core/resource.js"; import { APIPromise } from "../../core/api-promise.js"; import { RequestOptions } from "../../internal/request-options.js"; export declare class AudioRecaps extends APIResource { /** * List audio-recap section feedback for the authenticated organization. * * @example * ```ts * const response = await client.v1.audioRecaps.listFeedback({ * componentId: 'audio_recap_abc123', * feedbackType: 'thumbsDown', * }); * ``` */ listFeedback(query?: AudioRecapListFeedbackParams | null | undefined, options?: RequestOptions): APIPromise; /** * Retrieve the rated section and surrounding section context for a feedback row. * * @example * ```ts * const context = await client.v1.audioRecaps.retrieveFeedbackContext('feedback_id'); * ``` */ retrieveFeedbackContext(feedbackID: string, options?: RequestOptions): APIPromise; /** * List per-user playback progress for an audio-recap component. * * @example * ```ts * const response = await client.v1.audioRecaps.listProgress('audio_recap_abc123', { * groupId: 'class-101', * }); * ``` */ listProgress(componentID: string, query?: AudioRecapListProgressParams | null | undefined, options?: RequestOptions): APIPromise; /** * Retrieve per-section playback progress for a single user on an audio recap. * * @example * ```ts * const response = await client.v1.audioRecaps.retrieveUserProgress( * 'audio_recap_abc123', * 'student-001', * ); * ``` */ retrieveUserProgress(componentID: string, userID: string, options?: RequestOptions): APIPromise; } export interface AudioRecapFeedbackItem { _id: string; componentId: string; feedback: 'thumbsUp' | 'thumbsDown'; reason: string; sectionId: string; timestamp: string; userId: string; componentName?: string; groupIds?: Array; recapId?: string; recapTitle?: string; sectionOrder?: number; } export interface AudioRecapListFeedbackResponse { feedback: Array; groups: Array; stats: AudioRecapListFeedbackResponse.Stats; total: number; } export declare namespace AudioRecapListFeedbackResponse { interface Stats { thumbsDown: number; thumbsUp: number; withReason: number; } } export interface AudioRecapFeedbackContextResponse { feedback: AudioRecapFeedbackContextResponse.Feedback; section: AudioRecapFeedbackContextResponse.Section | null; sections: Array; } export declare namespace AudioRecapFeedbackContextResponse { interface Feedback { _id: string; componentId: string; feedback: 'thumbsUp' | 'thumbsDown'; reason: string; recapId: string; sectionId: string; timestamp: string; userId: string; componentName?: string; groupIds?: Array; recapTitle?: string; sectionOrder?: number; } interface Section { id: string; citations: Array; order: number; script: string; audioUrl?: string; isUserQuestion?: boolean; userQuestion?: string; } interface SectionSummary { id: string; order: number; scriptPreview: string; audioUrl?: string; generated?: boolean; isUserQuestion?: boolean; userQuestion?: string; } } export interface AudioRecapListProgressResponse { totalSections: number; totalUsers: number; users: Array; } export declare namespace AudioRecapListProgressResponse { interface User { completionPct: number; groupIds: Array; lastActivityAt: string; sectionsCompleted: number; userId: string; currentSection?: User.CurrentSection; } namespace User { interface CurrentSection { lastPosition: number; order: number; } } } export interface AudioRecapUserProgressResponse { sections: Array; user: AudioRecapUserProgressResponse.User; } export declare namespace AudioRecapUserProgressResponse { interface Section { completed: boolean; lastPosition: number; order: number; scriptPreview: string; sectionId: string; completedAt?: string; isUserQuestion?: boolean; updatedAt?: string; } interface User { completionPct: number; groupIds: Array; sectionsCompleted: number; totalSections: number; userId: string; } } export interface AudioRecapListFeedbackParams { /** * Filter by component ID. */ componentId?: string; /** * End date for filtering (ISO 8601). */ endDate?: string; /** * Filter by feedback type. */ feedbackType?: 'thumbsUp' | 'thumbsDown'; /** * Filter by group ID. */ groupId?: string; /** * Number of records to return. */ limit?: number; /** * Filter by audio recap ID. */ recapId?: string; /** * Number of records to skip. */ skip?: number; /** * Start date for filtering (ISO 8601). */ startDate?: string; /** * Filter by user ID. */ userId?: string; } export interface AudioRecapListProgressParams { /** * Filter by group ID. */ groupId?: string; /** * Number of users to return. */ limit?: number; /** * Number of users to skip. */ skip?: number; /** * Filter by user ID. */ userId?: string; } export declare namespace AudioRecaps { export { type AudioRecapFeedbackItem as AudioRecapFeedbackItem, type AudioRecapListFeedbackResponse as AudioRecapListFeedbackResponse, type AudioRecapFeedbackContextResponse as AudioRecapFeedbackContextResponse, type AudioRecapListProgressResponse as AudioRecapListProgressResponse, type AudioRecapUserProgressResponse as AudioRecapUserProgressResponse, type AudioRecapListFeedbackParams as AudioRecapListFeedbackParams, type AudioRecapListProgressParams as AudioRecapListProgressParams, }; } //# sourceMappingURL=audio-recaps.d.ts.map