saltfish
Version:
An interactive video-guided tour system for web applications
42 lines • 1.4 kB
TypeScript
import type { EventManager } from '../managers/EventManager';
import type { PlaylistOptions } from '../types';
export interface ValidationResult {
isValid: boolean;
manifestPath?: string;
updatedOptions?: PlaylistOptions;
error?: string;
}
export interface PlaylistValidationContext {
playlistId: string;
options?: PlaylistOptions;
eventManager: EventManager;
}
/**
* Validates playlist startup conditions and requirements
* Handles complex validation logic including user authentication,
* "maxVisits" policies, backend validation, and device compatibility
*/
export declare class PlaylistValidator {
/**
* Validates all conditions for starting a playlist
*/
validatePlaylistStart(context: PlaylistValidationContext): Promise<ValidationResult>;
/**
* Validates trigger conditions for playlists with hasTriggers enabled
*/
private validateTriggerConditions;
/**
* Validates "once" option conditions
*/
private validateOnceOptionConditions;
/**
* Validates device compatibility with playlist requirements
* Uses deviceType from the playlist data (from validate-token response) instead of fetching manifest
*/
private validateDeviceCompatibility;
/**
* Waits for user data to be loaded with timeout
*/
private waitForUserData;
}
//# sourceMappingURL=PlaylistValidator.d.ts.map