/**
 * Check if value a is identical to to value b
 * Note: This is the classic equality by reference,
 * but with type guard support
 */
export declare const is: <A extends B, B>(a: A) => (b: B) => b is A;
/**
 * Check if a value T matches one of the provided predicates
 *
 * Used to check current union value
 */
export declare function isOneOf<T, A extends T>(ps: [(v: T) => v is A]): (v: T) => v is A;
export declare function isOneOf<T, A extends T, B extends T>(ps: [(v: T) => v is A, (v: T) => v is B]): (v: T) => v is A | B;
export declare function isOneOf<T, A extends T, B extends T, C extends T>(ps: [(v: T) => v is A, (v: B) => v is B, (v: T) => v is C]): (v: T) => v is A | B | C;
export declare function isOneOf<T, A extends T, B extends T, C extends T, D extends T>(ps: [(v: T) => v is A, (v: B) => v is B, (v: C) => v is C, (v: T) => v is D]): (v: T) => v is A | B | C | D;
export declare function isOneOf<T, A extends T, B extends T, C extends T, D extends T, E extends T>(ps: [(v: T) => v is A, (v: B) => v is B, (v: C) => v is C, (v: D) => v is D, (v: T) => v is E]): (v: T) => v is A | B | C | D | E;
export declare function isOneOf<T, A extends T, B extends T, C extends T, D extends T, E extends T, F extends T>(ps: [(v: T) => v is A, (v: B) => v is B, (v: C) => v is C, (v: D) => v is D, (v: E) => v is E, (v: T) => v is F]): (v: T) => v is A | B | C | D | E | F;
export declare function isOneOf<T, A extends T, B extends T, C extends T, D extends T, E extends T, F extends T, G extends T>(ps: [
    (v: T) => v is A,
    (v: B) => v is B,
    (v: C) => v is C,
    (v: D) => v is D,
    (v: E) => v is E,
    (v: F) => v is F,
    (v: T) => v is G
]): (v: T) => v is A | B | C | D | E | F | G;
export declare function isOneOf<T, A extends T, B extends T, C extends T, D extends T, E extends T, F extends T, G extends T, H extends T>(ps: [
    (v: T) => v is A,
    (v: B) => v is B,
    (v: C) => v is C,
    (v: D) => v is D,
    (v: E) => v is E,
    (v: F) => v is F,
    (v: G) => v is G,
    (v: T) => v is H
]): (v: T) => v is A | B | C | D | E | F | G | H;
export declare function isOneOf<T>(ps: Array<(v: T) => boolean>): (v: T) => boolean;
