import * as z from "zod"; export declare const RankingScopeEnum: z.ZodEnum<["TERREIRO", "CITY", "STATE", "COUNTRY"]>; export type RankingScope = z.infer; export declare const RANKING_SCOPE_LABELS: Record; export declare const RankingPeriodEnum: z.ZodEnum<["WEEKLY", "MONTHLY", "YEARLY", "ALL_TIME"]>; export type RankingPeriod = z.infer; export declare const LeaderboardViewModeEnum: z.ZodEnum<["list", "podium"]>; export type LeaderboardViewMode = z.infer; export declare const RANKING_PERIOD_LABELS: Record; export declare const GamificationBadgeTypeEnum: z.ZodEnum<["PARTICIPATION", "STREAK", "FIRST_STEPS", "SPECIAL", "MILESTONE"]>; export type GamificationBadgeType = z.infer; export declare const BADGE_TYPE_LABELS: Record; export declare const GamificationBadgeTierEnum: z.ZodEnum<["BRONZE", "SILVER", "GOLD", "PLATINUM", "DIAMOND"]>; export type GamificationBadgeTier = z.infer; export declare const BADGE_TIER_LABELS: Record; export declare const BADGE_TIER_COLORS: Record; export declare const RankingEntrySchema: z.ZodObject<{ position: z.ZodNumber; mediumId: z.ZodString; mediumName: z.ZodString; avatarUrl: z.ZodNullable; terreiroName: z.ZodOptional>; points: z.ZodNumber; participationCount: z.ZodNumber; previousPosition: z.ZodNullable; positionChange: z.ZodNumber; }, "strip", z.ZodTypeAny, { position: number; points: number; avatarUrl: string | null; mediumId: string; mediumName: string; positionChange: number; participationCount: number; previousPosition: number | null; terreiroName?: string | null | undefined; }, { position: number; points: number; avatarUrl: string | null; mediumId: string; mediumName: string; positionChange: number; participationCount: number; previousPosition: number | null; terreiroName?: string | null | undefined; }>; export type RankingEntry = z.infer; export declare const RankingResultSchema: z.ZodObject<{ scope: z.ZodEnum<["TERREIRO", "CITY", "STATE", "COUNTRY"]>; scopeId: z.ZodNullable; period: z.ZodEnum<["WEEKLY", "MONTHLY", "YEARLY", "ALL_TIME"]>; entries: z.ZodArray; terreiroName: z.ZodOptional>; points: z.ZodNumber; participationCount: z.ZodNumber; previousPosition: z.ZodNullable; positionChange: z.ZodNumber; }, "strip", z.ZodTypeAny, { position: number; points: number; avatarUrl: string | null; mediumId: string; mediumName: string; positionChange: number; participationCount: number; previousPosition: number | null; terreiroName?: string | null | undefined; }, { position: number; points: number; avatarUrl: string | null; mediumId: string; mediumName: string; positionChange: number; participationCount: number; previousPosition: number | null; terreiroName?: string | null | undefined; }>, "many">; totalEntries: z.ZodNumber; calculatedAt: z.ZodString; }, "strip", z.ZodTypeAny, { entries: { position: number; points: number; avatarUrl: string | null; mediumId: string; mediumName: string; positionChange: number; participationCount: number; previousPosition: number | null; terreiroName?: string | null | undefined; }[]; scope: "TERREIRO" | "CITY" | "STATE" | "COUNTRY"; period: "WEEKLY" | "MONTHLY" | "YEARLY" | "ALL_TIME"; scopeId: string | null; totalEntries: number; calculatedAt: string; }, { entries: { position: number; points: number; avatarUrl: string | null; mediumId: string; mediumName: string; positionChange: number; participationCount: number; previousPosition: number | null; terreiroName?: string | null | undefined; }[]; scope: "TERREIRO" | "CITY" | "STATE" | "COUNTRY"; period: "WEEKLY" | "MONTHLY" | "YEARLY" | "ALL_TIME"; scopeId: string | null; totalEntries: number; calculatedAt: string; }>; export type RankingResult = z.infer; export declare const GamificationBadgeSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; description: z.ZodString; iconUrl: z.ZodNullable; type: z.ZodEnum<["PARTICIPATION", "STREAK", "FIRST_STEPS", "SPECIAL", "MILESTONE"]>; tier: z.ZodEnum<["BRONZE", "SILVER", "GOLD", "PLATINUM", "DIAMOND"]>; requirement: z.ZodNumber; points: z.ZodNumber; }, "strip", z.ZodTypeAny, { id: string; type: "PARTICIPATION" | "STREAK" | "MILESTONE" | "SPECIAL" | "FIRST_STEPS"; name: string; points: number; description: string; tier: "BRONZE" | "SILVER" | "GOLD" | "PLATINUM" | "DIAMOND"; iconUrl: string | null; requirement: number; }, { id: string; type: "PARTICIPATION" | "STREAK" | "MILESTONE" | "SPECIAL" | "FIRST_STEPS"; name: string; points: number; description: string; tier: "BRONZE" | "SILVER" | "GOLD" | "PLATINUM" | "DIAMOND"; iconUrl: string | null; requirement: number; }>; export type GamificationBadge = z.infer; export declare const MediumBadgeSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; description: z.ZodString; iconUrl: z.ZodNullable; type: z.ZodEnum<["PARTICIPATION", "STREAK", "FIRST_STEPS", "SPECIAL", "MILESTONE"]>; tier: z.ZodEnum<["BRONZE", "SILVER", "GOLD", "PLATINUM", "DIAMOND"]>; requirement: z.ZodNumber; points: z.ZodNumber; } & { earnedAt: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; type: "PARTICIPATION" | "STREAK" | "MILESTONE" | "SPECIAL" | "FIRST_STEPS"; name: string; points: number; description: string; tier: "BRONZE" | "SILVER" | "GOLD" | "PLATINUM" | "DIAMOND"; iconUrl: string | null; earnedAt: string; requirement: number; }, { id: string; type: "PARTICIPATION" | "STREAK" | "MILESTONE" | "SPECIAL" | "FIRST_STEPS"; name: string; points: number; description: string; tier: "BRONZE" | "SILVER" | "GOLD" | "PLATINUM" | "DIAMOND"; iconUrl: string | null; earnedAt: string; requirement: number; }>; export type MediumBadge = z.infer; export declare const BadgeProgressSchema: z.ZodObject<{ badge: z.ZodObject<{ id: z.ZodString; name: z.ZodString; description: z.ZodString; iconUrl: z.ZodNullable; type: z.ZodEnum<["PARTICIPATION", "STREAK", "FIRST_STEPS", "SPECIAL", "MILESTONE"]>; tier: z.ZodEnum<["BRONZE", "SILVER", "GOLD", "PLATINUM", "DIAMOND"]>; requirement: z.ZodNumber; points: z.ZodNumber; }, "strip", z.ZodTypeAny, { id: string; type: "PARTICIPATION" | "STREAK" | "MILESTONE" | "SPECIAL" | "FIRST_STEPS"; name: string; points: number; description: string; tier: "BRONZE" | "SILVER" | "GOLD" | "PLATINUM" | "DIAMOND"; iconUrl: string | null; requirement: number; }, { id: string; type: "PARTICIPATION" | "STREAK" | "MILESTONE" | "SPECIAL" | "FIRST_STEPS"; name: string; points: number; description: string; tier: "BRONZE" | "SILVER" | "GOLD" | "PLATINUM" | "DIAMOND"; iconUrl: string | null; requirement: number; }>; current: z.ZodNumber; progress: z.ZodNumber; earned: z.ZodBoolean; }, "strip", z.ZodTypeAny, { progress: number; current: number; badge: { id: string; type: "PARTICIPATION" | "STREAK" | "MILESTONE" | "SPECIAL" | "FIRST_STEPS"; name: string; points: number; description: string; tier: "BRONZE" | "SILVER" | "GOLD" | "PLATINUM" | "DIAMOND"; iconUrl: string | null; requirement: number; }; earned: boolean; }, { progress: number; current: number; badge: { id: string; type: "PARTICIPATION" | "STREAK" | "MILESTONE" | "SPECIAL" | "FIRST_STEPS"; name: string; points: number; description: string; tier: "BRONZE" | "SILVER" | "GOLD" | "PLATINUM" | "DIAMOND"; iconUrl: string | null; requirement: number; }; earned: boolean; }>; export type BadgeProgress = z.infer; export declare const MediumPointsSchema: z.ZodObject<{ id: z.ZodString; mediumId: z.ZodString; terreiroId: z.ZodString; totalPoints: z.ZodNumber; monthlyPoints: z.ZodNumber; weeklyPoints: z.ZodNumber; currentStreak: z.ZodNumber; longestStreak: z.ZodNumber; lastActivityDate: z.ZodNullable; }, "strip", z.ZodTypeAny, { id: string; mediumId: string; terreiroId: string; lastActivityDate: string | null; totalPoints: number; monthlyPoints: number; weeklyPoints: number; currentStreak: number; longestStreak: number; }, { id: string; mediumId: string; terreiroId: string; lastActivityDate: string | null; totalPoints: number; monthlyPoints: number; weeklyPoints: number; currentStreak: number; longestStreak: number; }>; export type MediumPoints = z.infer; export declare const LeaderboardPagePropsSchema: z.ZodObject<{ /** Page title */ title: z.ZodOptional; /** Callback when back button is clicked */ onBack: z.ZodOptional, z.ZodVoid>>; /** Empty state message */ emptyMessage: z.ZodOptional; /** Ranking data */ data: z.ZodOptional; scopeId: z.ZodNullable; period: z.ZodEnum<["WEEKLY", "MONTHLY", "YEARLY", "ALL_TIME"]>; entries: z.ZodArray; terreiroName: z.ZodOptional>; points: z.ZodNumber; participationCount: z.ZodNumber; previousPosition: z.ZodNullable; positionChange: z.ZodNumber; }, "strip", z.ZodTypeAny, { position: number; points: number; avatarUrl: string | null; mediumId: string; mediumName: string; positionChange: number; participationCount: number; previousPosition: number | null; terreiroName?: string | null | undefined; }, { position: number; points: number; avatarUrl: string | null; mediumId: string; mediumName: string; positionChange: number; participationCount: number; previousPosition: number | null; terreiroName?: string | null | undefined; }>, "many">; totalEntries: z.ZodNumber; calculatedAt: z.ZodString; }, "strip", z.ZodTypeAny, { entries: { position: number; points: number; avatarUrl: string | null; mediumId: string; mediumName: string; positionChange: number; participationCount: number; previousPosition: number | null; terreiroName?: string | null | undefined; }[]; scope: "TERREIRO" | "CITY" | "STATE" | "COUNTRY"; period: "WEEKLY" | "MONTHLY" | "YEARLY" | "ALL_TIME"; scopeId: string | null; totalEntries: number; calculatedAt: string; }, { entries: { position: number; points: number; avatarUrl: string | null; mediumId: string; mediumName: string; positionChange: number; participationCount: number; previousPosition: number | null; terreiroName?: string | null | undefined; }[]; scope: "TERREIRO" | "CITY" | "STATE" | "COUNTRY"; period: "WEEKLY" | "MONTHLY" | "YEARLY" | "ALL_TIME"; scopeId: string | null; totalEntries: number; calculatedAt: string; }>>>; /** Current medium's position (for highlighting) */ currentMediumId: z.ZodOptional; /** Loading state */ isLoading: z.ZodOptional; /** Error message */ error: z.ZodOptional; /** Current scope */ currentScope: z.ZodOptional>; /** Current period */ currentPeriod: z.ZodOptional>; /** Callback when scope changes */ onScopeChange: z.ZodOptional], z.ZodUnknown>, z.ZodVoid>>; /** Callback when period changes */ onPeriodChange: z.ZodOptional], z.ZodUnknown>, z.ZodVoid>>; /** Callback when entry is clicked */ onEntryClick: z.ZodOptional, z.ZodVoid>>; /** Available scopes (based on user's location) */ availableScopes: z.ZodOptional, "many">>; /** Show scope selector */ showScopeSelector: z.ZodOptional; /** Show period selector */ showPeriodSelector: z.ZodOptional; /** Leaderboard display mode */ leaderboardViewMode: z.ZodOptional>; /** Show tie-break explanation block */ showTieBreakInfo: z.ZodOptional; /** Custom tie-break explanation message */ tieBreakMessage: z.ZodOptional; /** Optional callback for opening full gamification explanation */ onLearnGamification: z.ZodOptional, z.ZodVoid>>; /** CTA label for learn gamification action */ learnGamificationLabel: z.ZodOptional; }, "strip", z.ZodTypeAny, { title?: string | undefined; data?: { entries: { position: number; points: number; avatarUrl: string | null; mediumId: string; mediumName: string; positionChange: number; participationCount: number; previousPosition: number | null; terreiroName?: string | null | undefined; }[]; scope: "TERREIRO" | "CITY" | "STATE" | "COUNTRY"; period: "WEEKLY" | "MONTHLY" | "YEARLY" | "ALL_TIME"; scopeId: string | null; totalEntries: number; calculatedAt: string; } | null | undefined; error?: string | undefined; onBack?: ((...args: unknown[]) => void) | undefined; isLoading?: boolean | undefined; onLearnGamification?: ((...args: unknown[]) => void) | undefined; onPeriodChange?: ((args_0: "WEEKLY" | "MONTHLY" | "YEARLY" | "ALL_TIME", ...args: unknown[]) => void) | undefined; currentMediumId?: string | undefined; emptyMessage?: string | undefined; currentScope?: "TERREIRO" | "CITY" | "STATE" | "COUNTRY" | undefined; currentPeriod?: "WEEKLY" | "MONTHLY" | "YEARLY" | "ALL_TIME" | undefined; onScopeChange?: ((args_0: "TERREIRO" | "CITY" | "STATE" | "COUNTRY", ...args: unknown[]) => void) | undefined; onEntryClick?: ((args_0: string, ...args: unknown[]) => void) | undefined; availableScopes?: ("TERREIRO" | "CITY" | "STATE" | "COUNTRY")[] | undefined; showScopeSelector?: boolean | undefined; showPeriodSelector?: boolean | undefined; leaderboardViewMode?: "list" | "podium" | undefined; showTieBreakInfo?: boolean | undefined; tieBreakMessage?: string | undefined; learnGamificationLabel?: string | undefined; }, { title?: string | undefined; data?: { entries: { position: number; points: number; avatarUrl: string | null; mediumId: string; mediumName: string; positionChange: number; participationCount: number; previousPosition: number | null; terreiroName?: string | null | undefined; }[]; scope: "TERREIRO" | "CITY" | "STATE" | "COUNTRY"; period: "WEEKLY" | "MONTHLY" | "YEARLY" | "ALL_TIME"; scopeId: string | null; totalEntries: number; calculatedAt: string; } | null | undefined; error?: string | undefined; onBack?: ((...args: unknown[]) => void) | undefined; isLoading?: boolean | undefined; onLearnGamification?: ((...args: unknown[]) => void) | undefined; onPeriodChange?: ((args_0: "WEEKLY" | "MONTHLY" | "YEARLY" | "ALL_TIME", ...args: unknown[]) => void) | undefined; currentMediumId?: string | undefined; emptyMessage?: string | undefined; currentScope?: "TERREIRO" | "CITY" | "STATE" | "COUNTRY" | undefined; currentPeriod?: "WEEKLY" | "MONTHLY" | "YEARLY" | "ALL_TIME" | undefined; onScopeChange?: ((args_0: "TERREIRO" | "CITY" | "STATE" | "COUNTRY", ...args: unknown[]) => void) | undefined; onEntryClick?: ((args_0: string, ...args: unknown[]) => void) | undefined; availableScopes?: ("TERREIRO" | "CITY" | "STATE" | "COUNTRY")[] | undefined; showScopeSelector?: boolean | undefined; showPeriodSelector?: boolean | undefined; leaderboardViewMode?: "list" | "podium" | undefined; showTieBreakInfo?: boolean | undefined; tieBreakMessage?: string | undefined; learnGamificationLabel?: string | undefined; }>; export type LeaderboardPageProps = z.infer;