// @flow export type Comparator = (a: T, b: T) => number type NumberArray = | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Float64Array | Float32Array | Array type SearchFn = { ( array: NumberArray, find: number, comparator?: Comparator, low?: number, high?: number ): number, ( array: Array, find: T, comparator?: Comparator, low?: number, high?: number ): number, } type EntryFn = { ( array: NumberArray, find: number, comparator?: Comparator, low?: number, high?: number ): [number, number | void], ( array: Array, find: T, comparator?: Comparator, low?: number, high?: number ): [number, T | void], } type ValueFn = { ( array: NumberArray, find: number, comparator?: Comparator, low?: number, high?: number ): number | void, ( array: Array, find: T, comparator?: Comparator, low?: number, high?: number ): T | void, } declare export var DEFAULT_COMPARATOR: Comparator declare export var binarySearch: SearchFn declare export var ceilingIndex: SearchFn declare export var ceilingEntry: EntryFn declare export var ceilingValue: ValueFn declare export var floorIndex: SearchFn declare export var floorEntry: EntryFn declare export var floorValue: ValueFn declare export var higherIndex: SearchFn declare export var higherEntry: EntryFn declare export var higherValue: ValueFn declare export var lowerIndex: SearchFn declare export var lowerEntry: EntryFn declare export var lowerValue: ValueFn