import { Equality, Hash, Order } from "./things.js"; /** The type of integers. */ export type int = number; export declare const int: Hash & Order; /** The type of natural numbers starting from 0. */ export type nat = number; export declare const nat: Hash & Order; export declare const sameValueZero: Equality; /** Combines a sequence of hashes into a single hash. */ export declare function combineHashes(hashes: Iterable): int; export declare function startHash(seed?: int): int; export declare function addHash(accumulator: int, hash: int): int; /** * Combines a sequence of hashes into a single hash. * Looks what we really want here is the MurmurHash3 (https://github.com/scala/scala/blob/2.11.x/src/library/scala/util/hashing/MurmurHash3.scala). * But for now we just use addition like Java does. **/ export declare function combineHashesOrderInvariant(hashes: Iterable): int; /** Returns a sequence of the [codepoints](https://unicode.org/glossary/#code_point) of a string. */ export declare function iterateCodepoints(s: string): Generator; export declare const string: Order & Hash; export declare const stringNFC: Order & Hash; export declare const boolean: Hash & Order;