import { LitElement } from 'lit';
import { GameWonEvent, GameLostEvent, FieldLongPressEvent, FieldClickEvent, FieldInteractionEvent } from './events/index.js';
import { GameModeConfiguration } from './types/index.js';
/**
 * @fires {GameWonEvent} minesweeper:game-won - User just won the game
 * @fires {GameLostEvent} minesweeper:game-lost - User just lost the game
 * @fires {FieldClickEvent} minesweeper:field-click - User clicked a field
 * @fires {FieldLongPressEvent} minesweeper:field-long-press - User long pressed a field
 * @fires {FieldInteractionEvent} minesweeper:field-interaction - Game state change occurred
 */
export declare class MinesweeperGame extends LitElement {
    static get styles(): import("lit").CSSResult;
    restartSelector?: string;
    bombCounterSelector?: string;
    flagPlacementMode: boolean;
    disableQuestionMarks: boolean;
    longPressThreshold: number;
    columns: number;
    rows: number;
    /** @type {number} */
    bombs: number;
    private engine;
    private pressStartTimestamp?;
    private pressStartSweeperField?;
    private longPressTimerId?;
    private isPressingFlagKey;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    private handleDocumentKeydown;
    private handleDocumentKeyup;
    private handleSweeperContainerMouseMove;
    private createGameBoard;
    private gameWonCallback;
    private gameLostCallback;
    setGameModeConfiguration(gameModeConfiguration: GameModeConfiguration): void;
    restartGame(): void;
    private get isLongPressDisabled();
    private resetLongPressStates;
    private handleScroll;
    private handleLongPress;
    private handleFieldClickStart;
    private handleFieldClickLeave;
    private handleFieldClickEnd;
    private triggerSecondActionClick;
    render(): import("lit-html").TemplateResult<1>;
    private getSweeperFieldSvg;
    private getHoverSweeperFieldSvg;
    private getSweeperFieldHtml;
}
declare global {
    interface GlobalEventHandlersEventMap {
        'minesweeper:game-won': GameWonEvent;
        'minesweeper:game-lost': GameLostEvent;
        'minesweeper:field-click': FieldClickEvent;
        'minesweeper:field-long-press': FieldLongPressEvent;
        'minesweeper:field-interaction': FieldInteractionEvent;
    }
}
export default MinesweeperGame;
//# sourceMappingURL=MinesweeperGame.d.ts.map