import type { Eq } from "@principia/prelude/Eq";
/**
* Form the union of two sets
*
* @category Combinators
* @since 1.0.0
*/
export declare const union_: (E: Eq) => (me: ReadonlySet, that: ReadonlySet) => ReadonlySet;
/**
* Form the union of two sets
*
* @category Combinators
* @since 1.0.0
*/
export declare const union: (E: Eq) => (that: ReadonlySet) => (me: ReadonlySet) => ReadonlySet;
/**
* The set of elements which are in both the first and second set
*
* @category Combinators
* @since 1.0.0
*/
export declare const intersection_: (
E: Eq
) => (me: ReadonlySet, that: ReadonlySet) => ReadonlySet | Set;
/**
* The set of elements which are in both the first and second set
*
* @category Combinators
* @since 1.0.0
*/
export declare const intersection: (
E: Eq
) => (that: ReadonlySet) => (me: ReadonlySet) => ReadonlySet | Set;
export declare const difference_: (E: Eq) => (me: ReadonlySet, that: ReadonlySet) => ReadonlySet;
export declare const difference: (E: Eq) => (that: ReadonlySet) => (me: ReadonlySet) => ReadonlySet;
export declare const insert_: (E: Eq) => (set: ReadonlySet, a: A) => ReadonlySet;
export declare const insert: (E: Eq) => (a: A) => (set: ReadonlySet) => ReadonlySet;
export declare const remove_: (E: Eq) => (set: ReadonlySet, a: A) => ReadonlySet;
export declare const remove: (E: Eq) => (a: A) => (set: ReadonlySet) => ReadonlySet;
//# sourceMappingURL=combinators.d.ts.map