/** Create an array of unique values that presented in each of the passed arrays */
export declare function intersection<T>(...rest: T[][]): T[];
/** Create an array with unique values from each of the passed arrays */
export declare function union<T>(...rest: T[][]): T[];
/** Creates an array of unique values from the first array that are not present in the other arrays */
export declare function complement<T>(...rest: T[][]): T[];
/**
 * @returns if the passed arrays have a full intersection
 * Expect uniq values in collections
 */
export declare function fullIntersection<T>(a: T[], b: T[]): boolean;
