export type Mapper = (a: A) => B;
export type ArrayMapper = (a: A, i: number, xs: A[]) => B;
export type ObjectMapper = (value: A[keyof A], key: keyof A, object: A) => B;
export type SetMapper = (a: A, xs: Set) => B;
export type MapValueMapper = (v: AV, k: AK, xs: Map) => BV;
export type MapKeyMapper = (v: AV, k: AK, xs: Map) => BK;
export type NodeListElementMapper = (a: A, i: number, xs: NodeListOf | HTMLCollectionOf) => B;
export declare namespace maps {
function array(xs: A[], f: ArrayMapper): B[];
function object(x: A, f: ObjectMapper): B;
function set(xs: Set, f: SetMapper): Set;
function map(xs: Map, valueMapper: MapValueMapper, keyMapper?: MapKeyMapper): Map;
function nodeList(xs: NodeListOf | HTMLCollectionOf, f: NodeListElementMapper): any[];
function any(o: any, f: (a: any) => any): any;
}
export declare const map_array: typeof maps.array;
export declare const map_object: typeof maps.object;
export declare const map_set: typeof maps.set;
export declare const map_map: typeof maps.map;
export declare const map_nodeList: typeof maps.nodeList;
export declare const map_any: typeof maps.any;