interface MissionListItem { /** Stable identifier used for the React key. Defaults to the array index if omitted. */ id?: string | number; /** Mission display title. */ title: string; /** XP amount awarded on completion. */ xpReward: number; /** Current progress count. */ progress: number; /** Target count required to complete. */ total: number; /** * Localized label shown after the XP amount (e.g. `i18n.t('components.missionCard.xp')`). * Omit to fall through to MissionCard's default of `"XP"`. */ xpLabel?: string; } interface MissionListProps { /** Missions to render, in display order. Ignored while `isLoading` is true. */ missions: ReadonlyArray; /** Show skeleton rows instead of the real missions. */ isLoading?: boolean; /** Number of skeleton rows to render while loading. Defaults to 3. */ skeletonCount?: number; /** Extra classes merged onto the outer card wrapper. */ className?: string; } /** * List of `MissionCard` rows wrapped in the same rounded card container the * home screen uses for weekly/daily missions, with `Separator` between rows. * * Purely presentational: the consumer provides the resolved mission data. * No data fetching or i18n baked in. * * When `isLoading` is true, renders `skeletonCount` `MissionCardSkeleton` * rows with the same wrapper and separators so the layout doesn't shift * between the loading and loaded states. */ declare function MissionList({ missions, isLoading, skeletonCount, className, }: MissionListProps): import("react/jsx-runtime").JSX.Element; export { MissionList }; export type { MissionListProps, MissionListItem }; //# sourceMappingURL=mission-list.d.ts.map