import { OnDestroy } from '@angular/core'; import { RetroAudioService } from './retro-audio.service'; import { MemoryGameCard, MemoryGameDifficulty, MemoryGameMode, MemoryGameProfile } from './types'; import { ButtonMetadata } from '../../types'; import * as i0 from "@angular/core"; type MemoryGamePhase = 'home' | 'playing' | 'won' | 'lost'; interface MemoryLeaderboardEntry { id: string; profile?: MemoryGameProfile; playerName?: string; playerAvatar?: string; medal?: MemoryMedal; difficulty: MemoryGameDifficulty; mode: MemoryGameMode; attempts: number; seconds: number; completedAt: string; } type MemoryMedal = 'gold' | 'silver' | 'bronze' | 'spark'; type MemoryConfirmAction = 'restart' | 'mode' | 'games'; export declare class MemoryGameComponent implements OnDestroy { private readonly i18n; private readonly router; private readonly playerProfiles; readonly audio: RetroAudioService; miniGamesRoute: string; readonly profiles: MemoryGameProfile[]; readonly confettiPieces: number[]; readonly phase: import("@angular/core").WritableSignal; readonly profile: import("@angular/core").WritableSignal; readonly difficulty: import("@angular/core").WritableSignal; readonly mode: import("@angular/core").WritableSignal; readonly playing: import("@angular/core").WritableSignal; readonly cards: import("@angular/core").WritableSignal; readonly attempts: import("@angular/core").WritableSignal; readonly streak: import("@angular/core").WritableSignal; readonly bestStreak: import("@angular/core").WritableSignal; readonly elapsed: import("@angular/core").WritableSignal; readonly remaining: import("@angular/core").WritableSignal; readonly failed: import("@angular/core").WritableSignal; readonly lockBoard: import("@angular/core").WritableSignal; readonly leaderboard: import("@angular/core").WritableSignal; readonly confirmAction: import("@angular/core").WritableSignal; private readonly confirmedAction; private timer?; private firstPick?; readonly profileConfig: import("@angular/core").Signal<{ pairs: number; timedSeconds?: number; mismatchDelay: number; boardClass: string; }>; readonly pairCount: import("@angular/core").Signal; readonly boardClass: import("@angular/core").Signal; readonly profileLeaderboard: import("@angular/core").Signal; readonly matchedPairs: import("@angular/core").Signal; readonly won: import("@angular/core").Signal; readonly playerName: import("@angular/core").Signal; readonly activePlayerAvatar: import("@angular/core").Signal; readonly activePlayerColor: import("@angular/core").Signal; readonly timeLabel: import("@angular/core").Signal<"time" | "timeLeft">; readonly formattedTime: import("@angular/core").Signal; readonly resultMedal: import("@angular/core").Signal; readonly resultSeconds: import("@angular/core").Signal; readonly winBody: import("@angular/core").Signal; readonly confirmTitle: import("@angular/core").Signal; readonly confirmBody: import("@angular/core").Signal; readonly confirmActions: import("@angular/core").Signal; constructor(); ngOnDestroy(): void; protected t(key: string): string; selectProfile(profile: MemoryGameProfile): void; start(): void; resetToSetup(): void; requestRestartGame(): void; requestChangeMode(): void; requestChangeGame(): void; closeConfirmModal(): void; handleConfirmModalDismissed(): void; confirmPendingAction(token?: string): void; flip(card: MemoryGameCard): void; private startTimer; private stopTimer; private resetToGamesMenu; private miniGamesBaseRoute; private shuffle; protected leaderboardLine(entry: MemoryLeaderboardEntry): string; protected leaderboardTitle(entry: MemoryLeaderboardEntry): string; protected leaderboardHeading(): string; private saveScore; private readLeaderboard; private limitLeaderboard; private entryProfile; private calculateMedal; protected medalIcon(medal: MemoryMedal): string; private formatSeconds; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};