import { type SbbElementType } from '@sbb-esta/lyne-elements/core.js'; import { SbbDialogElement } from '@sbb-esta/lyne-elements/dialog.pure.js'; import { type CSSResultGroup, type TemplateResult } from 'lit'; /** * A hidden easter egg dialog rendering a canvas-based Snake game. * * Use the inherited `open()`, `close()` methods and the `isOpen` getter * to control the dialog. The dialog can also be triggered from any element * via the inherited `trigger` id-reference attribute. Score is exposed via * the readonly `score` getter. */ export declare class SbbEasterEggElement extends SbbDialogElement { static readonly elementName: string; static elementDependencies: SbbElementType[]; static styles: CSSResultGroup; /** The current game score (number of food items eaten in the current run). */ get score(): number; /** The highest score reached in the current dialog session. Reset on close. */ get highScore(): number; private accessor _score; private accessor _highScore; private accessor _gameOver; private accessor _started; private _canvas; private _ctx; private _cellSize; private _snake; private _currentDir; private _nextDir; private _snakePresence; private _foodPixel; private _currentFoodIndex; private _currentSpeed; private _timerId; private _touchStart; private _touchEnd; private _trainImages; private _foodImages; private _gridImage; private _imagesReady; private _openAbortController; private _prevTailCell; private _ateFoodThisFrame; private _needsFullRedraw; constructor(); disconnectedCallback(): void; protected handleOpening(): void; protected handleClosing(): void; private _initGame; private _loadImage; private _attachInputListeners; private _onTouchStart; private _onTouchEnd; private _handleSwipe; private _onKeydown; private _applyDirectionKey; private _resetGame; private _handleStartClick; private _startGame; private _stopGame; private _setGameOver; private _focusStartButton; private _updatePoints; private _hasCollided; private _placeFood; private _isReverse; private _idx; private _getSecondSnakeCellDir; private _update; private _clearTile; private _draw; private _getTrainHeadDir; private _getTrainTailDir; protected render(): TemplateResult; } declare global { interface HTMLElementTagNameMap { 'sbb-easter-egg': SbbEasterEggElement; } }