import * as cg from "./types.js";
export declare const invRanks: readonly cg.Rank[];
export declare const allKeys: readonly cg.Key[];
export declare function pos2key(pos: cg.Pos): cg.Key;
export declare function key2pos(k: cg.Key): cg.Pos;
export declare const uciToMove: (uci: string | undefined) => cg.Key[] | undefined;
export declare const allPos: readonly cg.Pos[];
export declare function memo(f: () => A): cg.Memo;
export declare const timer: () => cg.Timer;
export declare function containsX(xs: X[] | undefined, x: X): boolean;
export declare const opposite: (c: cg.Color) => cg.Color;
export declare const distanceSq: (pos1: cg.Pos, pos2: cg.Pos) => number;
export declare const samePiece: (p1: cg.Piece, p2: cg.Piece) => boolean;
export declare const posToTranslate: (bounds: DOMRectReadOnly) => ((pos: cg.Pos, asWhite: boolean) => cg.NumberPair);
export declare const translate: (el: HTMLElement, pos: cg.NumberPair) => void;
export declare const posToTranslateBase: (pos: cg.Pos, asWhite: boolean, xFactor: number, yFactor: number) => cg.NumberPair;
export declare const posToTranslateAbs: (bounds: ClientRect) => ((pos: cg.Pos, asWhite: boolean) => cg.NumberPair);
export declare const translateAndScale: (el: HTMLElement, pos: cg.NumberPair, scale?: number) => void;
export declare const posToTranslateRel: (pos: cg.Pos, asWhite: boolean) => cg.NumberPair;
export declare const translateAbs: (el: HTMLElement, pos: cg.NumberPair) => void;
export declare const translateRel: (el: HTMLElement, percents: cg.NumberPair) => void;
export declare const setVisible: (el: HTMLElement, v: boolean) => void;
export declare const eventPosition: (e: cg.MouchEvent) => cg.NumberPair | undefined;
export declare const isRightButton: (e: cg.MouchEvent) => boolean;
export declare const createEl: (tagName: string, className?: string) => HTMLElement;
export declare function computeSquareCenter(key: cg.Key, asWhite: boolean, bounds: ClientRect): cg.NumberPair;