import { OnDestroy } from '@angular/core'; import { BubbleBlitzCell, BubbleBlitzColor, BubbleBlitzMode, BubbleBlitzPhase } from './types'; import { ButtonMetadata } from '../../types'; import * as i0 from "@angular/core"; type BubbleConfirmAction = 'restart' | 'mode' | 'games'; type BubbleBlitzPalette = readonly BubbleBlitzColor[]; interface BubbleBlitzModeConfig { rows: number; cols: number; seconds: number; colors: BubbleBlitzPalette; feverTarget: number; } interface BubbleLeaderboardEntry { id: string; mode: BubbleBlitzMode; playerName: string; playerAvatar: string; playerColor: string; score: number; maxCombo: number; popped: number; createdAt: string; } export declare class BubbleBlitzGameComponent implements OnDestroy { private readonly i18n; private readonly router; private readonly playerProfiles; private readonly audio; private timer?; private animationTimer?; miniGamesRoute: string; readonly modes: BubbleBlitzMode[]; readonly phase: import("@angular/core").WritableSignal; readonly mode: import("@angular/core").WritableSignal; readonly grid: import("@angular/core").WritableSignal; readonly score: import("@angular/core").WritableSignal; readonly combo: import("@angular/core").WritableSignal; readonly maxCombo: import("@angular/core").WritableSignal; readonly popped: import("@angular/core").WritableSignal; readonly remaining: import("@angular/core").WritableSignal; readonly fever: import("@angular/core").WritableSignal; readonly selectedGroupKey: import("@angular/core").WritableSignal; readonly animating: import("@angular/core").WritableSignal; readonly leaderboard: import("@angular/core").WritableSignal; readonly confirmAction: import("@angular/core").WritableSignal; private readonly confirmedAction; readonly config: import("@angular/core").Signal; readonly feverReady: import("@angular/core").Signal; readonly feverProgress: import("@angular/core").Signal; readonly playerName: import("@angular/core").Signal; readonly activePlayerAvatar: import("@angular/core").Signal; readonly activePlayerColor: import("@angular/core").Signal; readonly modeLeaderboard: import("@angular/core").Signal; readonly leaderboardHeading: import("@angular/core").Signal; readonly resultBody: 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; selectMode(mode: BubbleBlitzMode): void; modeTitle(mode: BubbleBlitzMode): string; modeDescription(mode: BubbleBlitzMode): string; start(): void; resetToSetup(): void; popGroup(cell: BubbleBlitzCell): void; bubbleColor(color: BubbleBlitzColor): string; isTargetCell(cell: BubbleBlitzCell): boolean; groupSizeLabel(cell: BubbleBlitzCell): string; leaderboardLine(entry: BubbleLeaderboardEntry): string; requestRestartGame(): void; requestChangeMode(): void; requestChangeGame(): void; closeConfirmModal(): void; handleConfirmModalDismissed(): void; confirmPendingAction(token?: string): void; private startTimer; private stopTimer; private finishAnimation; private clearAnimationTimer; private finish; private createBoard; private createCell; private randomColor; private groupFrom; private removeGroup; private refillBoard; private hasPlayableGroup; private neighborPositions; private positionKey; private saveScore; private readLeaderboard; private resetToGamesMenu; private miniGamesBaseRoute; private capitalize; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};