import { CSSProperties } from "styled-components"; import { StepShape } from "../icons/character-progression"; import { CharacterProgressionTierData } from "./progression"; import { RewardData } from "./reward"; export interface Behavior { id?: string; points?: number; name?: string; cta?: string; } interface CurrentTier { title?: string; icon?: string; rewards?: RewardData[]; startStep?: number; endStep?: number; } export interface ProgressionItem { id: string; name?: string; description?: string; categoryId?: string; category: string; icon?: string; tiers?: CharacterProgressionTierData[]; behaviors?: Behavior[]; totalPoints?: number; currentStep: number; currentStepSize?: number; currentStepLength?: number; currentStepProgress?: number; minStep?: number; maxStep?: number; currentTier?: CurrentTier; tierAmount?: number; progress: number; shape?: StepShape; stroke?: { primary: string; background: string; }; expToNextLvl?: number; nextLevelRewards?: RewardData[]; titleSize?: string; } export interface Progression { category: string; progressionItems: MultiProgressionModuleProps[]; } export interface SingleProgressionModuleProps { item: ProgressionItem; isStandalone?: boolean; primary?: boolean; containerStyle?: CSSProperties; levelImage?: string; } export interface ProfileModuleProps { progressionItems: MultiProgressionModuleProps[]; isStandalone?: boolean; primary?: boolean; onCtaClick?: (cta: string) => void; levelImage?: string; } export interface MultiProgressionModuleProps { category: string; progressionItems: ProgressionItem[]; tiers?: CharacterProgressionTierData[]; primary?: boolean; onOpen?: () => void; isStandalone?: boolean; onCtaClick?: (cta: string) => void; containerStyle?: CSSProperties; levelImage?: string; } export interface CharacterModuleProps { progressionItems?: ProgressionItem[]; step: number; progress: number; shape: StepShape; stroke: { primary: string; background?: string; }; avatar: string; scale: number; nextLevelRewards?: RewardData[]; nickname?: string; expToNextLvl: number; levelImage?: string; onCtaClick?: (cta: string) => void; } export {};