import { Rank, Geometry, Key, Pos, PieceLetter, Role, DropOrig, Variant, Memo, Timer, Color, Piece, PieceSide, BoardDimensions, NumberPair, MouchEvent } from './types';
export declare const invRanks: readonly Rank[];
export declare const NRanks: readonly number[];
export declare const invNRanks: readonly number[];
export declare function allKeys(geom: Geometry): Key[];
export declare function allPos(geom: Geometry): Pos[];
export declare const pos2key: (pos: Pos) => Key;
export declare const key2pos: (k: Key) => Pos;
export declare function roleOf(letter: PieceLetter): Role;
export declare function letterOf(role: Role, uppercase?: boolean): PieceLetter;
export declare function dropOrigOf(role: Role): DropOrig;
export declare function kingRoles(_variant: Variant): Role[];
export declare function memo(f: () => A): Memo;
export declare const timer: () => Timer;
export declare const opposite: (c: Color) => Color;
export declare const samePiece: (p1: Piece, p2: Piece) => boolean;
export declare const pieceSide: (p: Piece, o: Color) => PieceSide;
export declare const pieceClasses: (p: Piece, o: Color) => string;
export declare const distanceSq: (pos1: Pos, pos2: Pos) => number;
export declare const posToTranslate: (bounds: DOMRect, bd: BoardDimensions) => ((pos: Pos, asWhite: boolean) => NumberPair);
export declare const translate: (el: HTMLElement, pos: NumberPair) => void;
export declare const setVisible: (el: HTMLElement, v: boolean) => void;
export declare const eventPosition: (e: MouchEvent) => NumberPair | undefined;
export declare const isRightButton: (e: MouchEvent) => boolean;
export declare const createEl: (tagName: string, className?: string) => HTMLElement;
export declare const isMiniBoard: (el: HTMLElement) => boolean;
export declare function computeSquareCenter(key: Key, asWhite: boolean, bounds: DOMRect, bd: BoardDimensions): NumberPair;