/**
 * Preload Types
 *
 * Shared types for asset preloading infrastructure.
 */

/**
 * Simplified page type for preloading (runtime subset of TourPage)
 */
export interface PreloadPage {
  id: string;
  background_image_url?: string;
  background_video_url?: string;
  background_audio_url?: string;
}

/**
 * Simplified page link type for preloading (runtime subset of PageLink)
 */
export interface PreloadPageLink {
  id: string;
  from_pageId?: string;
  to_pageId?: string;
  is_active?: boolean;
  transition?: {
    id: string;
    video_url?: string;
  };
}

/**
 * Simplified element type for preloading
 */
export interface PreloadElement {
  id: string;
  pageId?: string;
  element_type?: string;
  content_json?: string;
}

/**
 * Asset info returned by neighbor graph
 */
export interface PreloadAssetInfo {
  url: string;
  pageId: string;
  assetType: 'image' | 'video' | 'audio' | 'transition' | 'other';
  priority: number;
}

/**
 * Neighbor info for graph traversal
 */
export interface PreloadNeighborInfo {
  pageId: string;
  distance: number;
}
