/** * Compare two values to determine their relative ordering. * * @returns A signed number indicating the relative order of `a` and `b`: * - If less than 0, `a` is less `b`. * - If 0, `a` equals `b`. * - If greater than 0, `a` is greater than `b`. */ export type Comparator = Function2; /** * Constructor function with 0 arguments. */ export type Constructor = new () => T; /** * Constructor function with 1 argument. */ export type Constructor1 = new (a: TA) => T; /** * Constructor function with 2 arguments. */ export type Constructor2 = new (a: TA, b: TB) => T; /** * Constructor function with 3 arguments. */ export type Constructor3 = new (a: TA, b: TB, c: TC) => T; /** * Constructor function with 4 arguments. */ export type Constructor4 = new (a: TA, b: TB, c: TC, d: TD) => T; /** * A function which instantiates new instances of type `T`. */ export type Factory = () => T; export type Function1 = (a: TA) => T; export type Function2 = (a: TA, b: TB) => T; export type Function3 = (a: TA, b: TB, c: TC) => T; export type Function4 = (a: TA, b: TB, c: TC, d: TD) => T; export type Function5 = (a: TA, b: TB, c: TC, d: TD, e: TE) => T; export type Function6 = (a: TA, b: TB, c: TC, d: TD, e: TE, f: TF) => T; export type Function7 = (a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG) => T; export type Function8 = (a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH) => T; export type Function9 = (a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI) => T; /** * Compare two values for equality. * * @returns true if `a` is equals to `b`, otherwise false */ export type Equality = Function2; /** * Represents an unboxed value of type T or undefined. */ export type Optional = T | undefined; /** * A one argument predicate function. */ export type Predicate = Function1; /** * A pure function that takes the current accumulator and next value, * returning the next accumulated value. */ export type Reducer = Function2; export type SideEffect = () => void; export type SideEffect1 = (a: TA) => void; export type SideEffect2 = (a: TA, b: TB) => void; export type SideEffect3 = (a: TA, b: TB, c: TC) => void; export type SideEffect4 = (a: TA, b: TB, c: TC, d: TD) => void; export type SideEffect5 = (a: TA, b: TB, c: TC, d: TD, e: TE) => void; export type SideEffect6 = (a: TA, b: TB, c: TC, d: TD, e: TE, f: TF) => void; export type SideEffect7 = (a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG) => void; export type Tuple1 = readonly [TA]; export type Tuple2 = readonly [TA, TB]; export type Tuple3 = readonly [TA, TB, TC]; export type Tuple4 = readonly [TA, TB, TC, TD]; export type Tuple5 = readonly [TA, TB, TC, TD, TE]; export type Tuple6 = readonly [TA, TB, TC, TD, TE, TF]; export type Tuple7 = readonly [ TA, TB, TC, TD, TE, TF, TG ]; export type Tuple8 = readonly [ TA, TB, TC, TD, TE, TF, TG, TH ]; export type Tuple9 = readonly [ TA, TB, TC, TD, TE, TF, TG, TH, TI ]; /** * A type guard function that performs a runtime check * guaranteeing `v` is of type `TB`. * * @returns `true` if v is an instance of type `TB`, otherwise false. */ export type TypePredicate = (v: TA) => v is TA & TB; /** * Computes a new value of type `T` from the previous value of type `T`. */ export type Updater = Function1; interface FunctionsModule { readonly none: undefined; alwaysFalse(..._args: unknown[]): boolean; alwaysTrue(..._args: unknown[]): true; arrayEquality(valuesEquality?: Equality): Equality; bind(f: F, thiz: unknown): F; bindMethod any>, TKey extends number | string | symbol>(thiz: T, key: TKey): T[TKey]; call(f: () => T, self: TInstance): T; call(f: (a: TA) => T, self: TInstance, a: TA): T; call(f: (a: TA, b: TB) => T, self: TInstance, a: TA, b: TB): T; clamp(min: number, max: number): Function1; compose(op1: Function1, op2: Function1): Function1; compose(op1: Function1, op2: Function1): Function1; compose(op1: Function1, op2: Function1, op3: Function1): Function1; compose(op1: Function1, op2: Function1, op3: Function1, op4: Function1): Function1; compose(op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1): Function1; compose(op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1): Function1; compose(op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1): Function1; compose(op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1): Function1; compose(op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1): Function1; compose(op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1): Function1; compose(op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1, op11: Function1): Function1; compose(op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1, op11: Function1, op12: Function1): Function1; debug(v: T): T; decrement(x: number): number; decrementBy(decr: number): Updater; error(message?: unknown): Error; errorWithDebugMessage(message: string): Error; greaterThan(v: number): Predicate; identity(v: T): T; identityLazy(): Updater; ignore(..._args: unknown[]): void; increment(x: number): number; incrementBy(incr: number): Updater; invoke any>, TKey extends number | string | symbol>(method: TKey, ...args: Parameters): Function1>; isEqualTo(b: T, options?: { readonly equality?: Equality; }): Predicate; readonly isEven: Predicate; isFalse(v: boolean): v is false; isFunction(f: unknown): f is Function; isNone(option: Optional): option is undefined; isNotEqualTo(b: T, options?: { readonly equality?: Equality; }): Predicate; isNumber(n: unknown): n is number; isNull(n: unknown): n is null; isObject(o: unknown): o is object; readonly isOdd: Predicate; isPromise(v: unknown): v is Promise; isReadonlyArray(o: unknown): o is readonly T[]; isSome(v: Optional): v is T; isString(o: unknown): o is string; isTrue(v: boolean): v is true; lessThan(v: number): Predicate; log(v: T): T; negate(v: boolean): boolean; newInstance(Constructor: Constructor): T; newInstance(Constructor: Constructor1, a: TA): T; newInstance(Constructor: Constructor2, a: TA, b: TB): T; newInstance(Constructor: Constructor3, a: TA, b: TB, c: TC): T; newInstance(Constructor: Constructor4, a: TA, b: TB, c: TC, d: TD): T; partial(b: TB): Function1, Function1>; partial(b: TB, c: TC): Function1, Function1>; partial(b: TB, c: TC, d: TD): Function1, Function1>; pick(key: TKey): Function1; pick(keyA: TKeyA, keyB: TKeyB): Function1; pick(keyA: TKeyA, keyB: TKeyB, keyC: TKeyC): Function1; pick(keyA: TKeyA, keyB: TKeyB, keyC: TKeyC, keyD: TKeyD): Function1; pickUnsafe(...keys: (string | symbol | number)[]): Function1<{}, T>; pipe(src: T, op1: Function1): A; pipe(src: T, op1: Function1, op2: Function1): B; pipe(src: T, op1: Function1, op2: Function1, op3: Function1): C; pipe(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1): D; pipe(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1): E; pipe(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1): F; pipe(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1): G; pipe(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1): H; pipe(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1): I; pipe(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1): J; pipe(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1, op11: Function1): K; pipe(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1, op11: Function1, op12: Function1): L; pipeAsync(src: T, op1: Function1>): Promise; pipeAsync(src: T, op1: Function1>, op2: Function1>): Promise; pipeAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>): Promise; pipeAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>): Promise; pipeAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>): Promise; pipeAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>): Promise; pipeAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>, op7: Function1>): Promise; pipeAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>, op7: Function1>, op8: Function1>): Promise; pipeAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>, op7: Function1>, op8: Function1>, op9: Function1>): Promise; pipeAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>, op7: Function1>, op8: Function1>, op9: Function1>, op10: Function1>): Promise; pipeAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>, op7: Function1>, op8: Function1>, op9: Function1>, op10: Function1>, op11: Function1>): Promise; pipeAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>, op7: Function1>, op8: Function1>, op9: Function1>, op10: Function1>, op11: Function1>, op12: Function1>): Promise; pipeLazy(src: T, op1: Function1): Factory; pipeLazy(src: T, op1: Function1, op2: Function1): Factory; pipeLazy(src: T, op1: Function1, op2: Function1, op3: Function1): Factory; pipeLazy(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1): Factory; pipeLazy(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1): Factory; pipeLazy(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1): Factory; pipeLazy(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1): Factory; pipeLazy(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1): Factory; pipeLazy(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1): Factory; pipeLazy(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1): Factory; pipeLazy(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1, op11: Function1): Factory; pipeLazy(src: T, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1, op11: Function1, op12: Function1): Factory; pipeLazyAsync(src: T, op1: Function1>): Factory>; pipeLazyAsync(src: T, op1: Function1>, op2: Function1>): Factory>; pipeLazyAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>): Factory>; pipeLazyAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>): Factory>; pipeLazyAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>): Factory>; pipeLazyAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>): Factory>; pipeLazyAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>, op7: Function1>): Factory>; pipeLazyAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>, op7: Function1>, op8: Function1>): Factory>; pipeLazyAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>, op7: Function1>, op8: Function1>, op9: Function1>): Factory>; pipeLazyAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>, op7: Function1>, op8: Function1>, op9: Function1>, op10: Function1>): Factory>; pipeLazyAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>, op7: Function1>, op8: Function1>, op9: Function1>, op10: Function1>, op11: Function1>): Factory>; pipeLazyAsync(src: T, op1: Function1>, op2: Function1>, op3: Function1>, op4: Function1>, op5: Function1>, op6: Function1>, op7: Function1>, op8: Function1>, op9: Function1>, op10: Function1>, op11: Function1>, op12: Function1>): Factory>; pipeSome(src: Optional, op1: Function1): Optional; pipeSome(src: Optional, op1: Function1, op2: Function1): Optional; pipeSome(src: Optional, op1: Function1, op2: Function1, op3: Function1): Optional; pipeSome(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1): Optional; pipeSome(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1): Optional; pipeSome(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1): Optional; pipeSome(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1): Optional; pipeSome(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1): Optional; pipeSome(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1): Optional; pipeSome(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1): Optional; pipeSome(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1, op11: Function1): Optional; pipeSome(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1, op11: Function1, op12: Function1): Optional; pipeSomeLazy(src: Optional, op1: Function1): Factory; pipeSomeLazy(src: Optional, op1: Function1, op2: Function1): Factory; pipeSomeLazy(src: Optional, op1: Function1, op2: Function1, op3: Function1): Factory; pipeSomeLazy(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1): Factory; pipeSomeLazy(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1): Factory; pipeSomeLazy(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1): Factory; pipeSomeLazy(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1): Factory; pipeSomeLazy(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1): Factory; pipeSomeLazy(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1): Factory; pipeSomeLazy(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1): Factory; pipeSomeLazy(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1, op11: Function1): Factory; pipeSomeLazy(src: Optional, op1: Function1, op2: Function1, op3: Function1, op4: Function1, op5: Function1, op6: Function1, op7: Function1, op8: Function1, op9: Function1, op10: Function1, op11: Function1, op12: Function1): Factory; pipeUnsafe(source: unknown, ...operators: Function1[]): T; raise(e?: unknown): T; raiseError(e: Error): T; raiseIf(condition: boolean, message: string): void; raiseIfNone(v: Optional, message: string): asserts v is T; returns(v: T): (..._args: unknown[]) => T; scale(start: number, end: number): Function1; strictEquality(a: T, b: T): boolean; tuple(a: TA): Tuple1; tuple(a: TA, b: TB): Tuple2; tuple(a: TA, b: TB, c: TC): Tuple3; tuple(a: TA, b: TB, c: TC, d: TD): Tuple4; tuple(a: TA, b: TB, c: TC, d: TD, e: TE): Tuple5; tuple(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF): Tuple6; } type Signature = FunctionsModule; /** * A function that always returns `false`. */ export declare const alwaysFalse: Signature["alwaysFalse"]; /** * A function that always returns `true`. */ export declare const alwaysTrue: Signature["alwaysTrue"]; /** * Returns an equality function that compares two readonly arrays for equality, * comparing their values using `valuesEquality`. */ export declare const arrayEquality: Signature["arrayEquality"]; /** * Creates a new function that, when called, calls `f` with its * this keyword set to the provided value. */ export declare const bind: Signature["bind"]; /** * Creates a new function that, when called, invokes the method * `thiz[key]` with the provided arguments. */ export declare const bindMethod: Signature["bindMethod"]; /** * Calls the function `f` with a given self value as this and arguments provided individually. */ export declare const call: Signature["call"]; export declare const clamp: Signature["clamp"]; /** * Composes a series of unary functions. */ export declare const compose: Signature["compose"]; /** * Invokes the debugger when compiled in dev mode. In production mode, * is a noop. */ export declare const debug: Signature["debug"]; /** * An updater function that returns the result of decrementing `x`. */ export declare const decrement: Signature["decrement"]; /** * Returns a function that decrements a number `x` by the value `decr`. */ export declare const decrementBy: Signature["decrementBy"]; /** * The identity function. * * @returns `v` */ export declare const identity: Signature["identity"]; export declare const identityLazy: Signature["identityLazy"]; /** * A function that always returns `undefined`. */ export declare const ignore: Signature["ignore"]; /** * An updater function that returns the result of incrementing `x`. */ export declare const increment: Signature["increment"]; /** * Returns a function that increments a number `x` by the value `incr`. */ export declare const incrementBy: Signature["incrementBy"]; /** * Enables invoking a method on an object as a unary function within * a pipeline operation. * * @param method * @param args * @returns */ export declare const invoke: Signature["invoke"]; export declare const isReadonlyArray: Signature["isReadonlyArray"]; /** * Returns a predicate function comparing its argument to `b` using the * provided `equality` function. */ export declare const isEqualTo: Signature["isEqualTo"]; export declare const isNotEqualTo: Signature["isNotEqualTo"]; /** * Returns `true` if `x` is an even number, otherwise `false`. */ export declare const isEven: Signature["isEven"]; export declare const isFalse: Signature["isFalse"]; export declare const isFunction: Signature["isFunction"]; /** * Returns true if `option` is `none`. */ export declare const isNone: Signature["isNone"]; export declare const isNull: Signature["isNull"]; export declare const isNumber: Signature["isNumber"]; /** * Predicate that returns `true` if `x` is an odd number, otherwise `false`. */ export declare const isOdd: Signature["isOdd"]; export declare const isObject: Signature["isObject"]; /** * Returns true if `option` is not `none`. */ export declare const isSome: Signature["isSome"]; export declare const isString: Signature["isString"]; export declare const isTrue: Signature["isTrue"]; export declare const greaterThan: Signature["greaterThan"]; export declare const lessThan: Signature["lessThan"]; export declare const log: Signature["log"]; /** * Applies logical negation to the value `v`. */ export declare const negate: Signature["negate"]; export declare const newInstance: Signature["newInstance"]; /** * An alias for undefined. */ export declare const none: Signature["none"]; export declare const partial: Signature["partial"]; /** * Type-unsafe variant of `pick`. */ export declare const pickUnsafe: Signature["pickUnsafe"]; /** * Returns a function that can be used to pick deeply nested properties * from an Object. */ export declare const pick: Signature["pick"]; /** * Pipes `source` through a series of unary functions. */ export declare const pipeUnsafe: Signature["pipeUnsafe"]; /** * Pipes `source` through a series of unary functions. */ export declare const pipe: Signature["pipe"]; /** * Pipes the source through a series of async operators. */ export declare const pipeAsync: Signature["pipeAsync"]; /** * Returns a `Factory` function that pipes the `source` through the provided operators. */ export declare const pipeLazy: Signature["pipeLazy"]; /** * Returns a `Factory` function that pipes the source through * the provided async function operators. */ export declare const pipeLazyAsync: Signature["pipeLazyAsync"]; /** * Pipes `source` through a series of unary functions if it is not undefined. */ export declare const pipeSome: Signature["pipeSome"]; /** * Returns a `Factory` function that pipes the `source` through the provided operators if not undefined. */ export declare const pipeSomeLazy: Signature["pipeSomeLazy"]; /** * Factory for a javascript Error from an unknown object type. * * Returns the provide object if it is an instance of Error, * otherwise a new Error object is created with the provided object as it's cause. */ export declare const error: Signature["error"]; /** * Throws the provided error. */ export declare const raiseError: Signature["raiseError"]; /** * Throws an error, wrapping the provided object in a Javascript Error. */ export declare const raise: Signature["raise"]; /** * Throws an error with the provided message is the condition is true. */ export declare const raiseIf: Signature["raiseIf"]; export declare const raiseIfNone: Signature["raiseIfNone"]; /** * Returns a function that takes an arbitrary number of arguments and always returns `v`. */ export declare const returns: Signature["returns"]; export declare const scale: Signature["scale"]; /** * The javascript strict equality function. */ export declare const strictEquality: Signature["strictEquality"]; /** * Typed function for creating tuple instances. */ export declare const tuple: Signature["tuple"]; export {};