import type * as Equivalence from "effect/Equivalence";
import * as Option from "effect/Option";
import type * as Order from "effect/Order";
import { type Set } from "./Set.js";
export interface NonEmptyBrand {
readonly NonEmpty: unique symbol;
}
export type NonEmptySet = Set & NonEmptyBrand;
declare class Wrapper {
wrapped(ord: Order.Order, eq?: Equivalence.Equivalence): {
insert: (a: A) => (set: NonEmptySet) => NonEmptySet;
insert_: (set: NonEmptySet, a: A) => NonEmptySet;
remove: (a: A) => (set: Set) => Option.None> | Option.Some>;
remove_: (set: Set, a: A) => Option.None> | Option.Some>;
reduce: (b: B, f: (b: B, a: A) => B) => (fa: Set) => B;
reduce_: (fa: Set, b: B, f: (b: B, a: A) => B) => B;
replace: (a: A) => (set: NonEmptySet) => NonEmptySet;
replace_: (set: NonEmptySet, a: A) => NonEmptySet;
toArray: (s: NonEmptySet) => readonly [A, ...A[]];
fromArray: (as: readonly A[]) => Option.None> | Option.Some>;
fromNonEmptyArray: (arr: readonly [A, ...A[]]) => NonEmptySet;
from: (it: Iterable) => Option.None> | Option.Some>;
of: (a: A) => NonEmptySet;
concat_: (set: NonEmptySet, it: Iterable) => Option.None> | Option.Some>;
concat: (it: Iterable) => (set: NonEmptySet) => Option.None> | Option.Some>;
map: (f: (x: A_1) => A_1) => (set: NonEmptySet) => NonEmptySet;
map_: (set: NonEmptySet, f: (x: A_1) => A_1) => NonEmptySet;
filterMap: (f: (a: A) => Option.Option) => (fa: Set) => Option.None> | Option.Some>;
filterMap_: (fa: Set, f: (a: A_1) => Option.Option) => Option.None> | Option.Some>;
};
}
export interface NonEmptySetSchemaExtensions extends ReturnType["wrapped"]> {
}
export declare const make: (ord: Order.Order, eq?: Equivalence.Equivalence) => NonEmptySetSchemaExtensions;
export declare function fromSet(set: Set): Option.None> | Option.Some>;
export * from "./Set.js";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9uRW1wdHlTZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ob25FbXB0eVNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssS0FBSyxXQUFXLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxLQUFLLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUUxQyxPQUFPLEVBQXFLLEtBQUssR0FBRyxFQUE4QixNQUFNLFVBQVUsQ0FBQTtBQUVsTyxNQUFNLFdBQVcsYUFBYTtJQUM1QixRQUFRLENBQUMsUUFBUSxFQUFFLE9BQU8sTUFBTSxDQUFBO0NBQ2pDO0FBRUQsTUFBTSxNQUFNLFdBQVcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQTtBQTBEbkQsY0FBTSxPQUFPLENBQUMsQ0FBQztJQUNiLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFFM0Q7Q0FDRjtBQUVELE1BQU0sV0FBVywyQkFBMkIsQ0FBQyxDQUFDLENBQUUsU0FBUSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0NBQUc7QUFFNUYsZUFBTyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsRUFDbkIsR0FBRyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ25CLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQzVCLDJCQUEyQixDQUFDLENBQUMsQ0FBUyxDQUFBO0FBRTNDLHdCQUFnQixPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLDZEQU1yQztBQUdELGNBQWMsVUFBVSxDQUFBIn0=