import type { Eq } from "@principia/prelude/Eq";
import type { Separated } from "@principia/prelude/Utils";
import type { Either } from "../Either";
import type { Predicate, Refinement } from "../Function";
import type { Option } from "../Option";
/**
* @since 1.0.0
*/
export declare const filter_: {
(fa: ReadonlySet, refinement: Refinement): ReadonlySet;
(fa: ReadonlySet, predicate: Predicate): ReadonlySet;
};
/**
* @since 1.0.0
*/
export declare const filter: {
(refinement: Refinement): (fa: ReadonlySet) => ReadonlySet;
(predicate: Predicate): (fa: ReadonlySet) => ReadonlySet;
};
/**
* @since 1.0.0
*/
export declare const partition_: {
(fa: ReadonlySet, refinement: Refinement): Separated, ReadonlySet>;
(fa: ReadonlySet, predicate: Predicate): Separated, ReadonlySet>;
};
/**
* @since 1.0.0
*/
export declare const partition: {
(refinement: Refinement): (fa: ReadonlySet) => Separated, ReadonlySet>;
(predicate: Predicate): (fa: ReadonlySet) => Separated, ReadonlySet>;
};
/**
* @since 1.0.0
*/
export declare const mapEither_: (
EB: Eq,
EC: Eq
) => (set: ReadonlySet, f: (a: A) => Either) => Separated, ReadonlySet>;
/**
* @since 1.0.0
*/
export declare const mapEither: (
EB: Eq,
EC: Eq
) => (f: (a: A) => Either) => (set: ReadonlySet) => Separated, ReadonlySet>;
/**
* @since 1.0.0
*/
export declare const mapOption_: (E: Eq) => (fa: ReadonlySet, f: (a: A) => Option) => Set;
/**
* @since 1.0.0
*/
export declare const mapOption: (E: Eq) => (f: (a: A) => Option) => (fa: ReadonlySet) => Set;
//# sourceMappingURL=filterable.d.ts.map