import { type CellGrid } from "./cellGrid.js"; export interface FallingPiece { readonly shape: TShape; readonly rotation: number; readonly x: number; readonly y: number; } export type ShapeTable = Record; /** @internal */ export declare function pieceCells(table: ShapeTable, piece: FallingPiece): readonly (readonly [number, number])[]; /** @internal */ export declare function pieceCollides(grid: CellGrid, table: ShapeTable, piece: FallingPiece): boolean; /** @internal */ export declare function mergePiece(grid: CellGrid, table: ShapeTable, piece: FallingPiece, value: T): CellGrid; /** @internal */ export declare function dropDistance(grid: CellGrid, table: ShapeTable, piece: FallingPiece): number; /** @internal */ export declare function gravityInterval(level: number, base?: number, perLevel?: number, min?: number): number; /** @internal */ export declare function levelForLines(lines: number, linesPerLevel?: number): number; /** @internal */ export declare function lineScore(cleared: number, level: number, table?: readonly number[]): number; export interface LockDelayState { readonly delaySeconds: number; readonly elapsed: number; } /** @internal */ export declare function createLockDelay(delaySeconds: number): LockDelayState; /** @internal */ export declare function stepLockDelay(state: LockDelayState, grounded: boolean, dt: number): { state: LockDelayState; locked: boolean; };