import { Eval, Kind } from '@fp4ts/core';
import { Eq, Monoid, Ord } from '@fp4ts/cats-kernel';
import { MonoidK } from '../../../monoid-k';
import { Option } from '../../option';
import { List } from '../list';
import { Vector } from '../vector';
import { Set } from './algebra';
import { View } from '../view';
export declare const isEmpty: (sa: Set) => boolean;
export declare const nonEmpty: (sa: Set) => boolean;
export declare const size: (sa: Set) => number;
export declare const head: (sa: Set) => A;
export declare const headOption: (sa: Set) => Option;
export declare const tail: (sa: Set) => Set;
export declare const last: (sa: Set) => A;
export declare const lastOption: (sa: Set) => Option;
export declare const init: (sa: Set) => Set;
export declare const min: (sa: Set) => Option;
export declare const popMin: (sa: Set) => Option<[A, Set]>;
export declare const max: (sa: Set) => Option;
export declare const popMax: (sa: Set) => Option<[A, Set]>;
export declare function iterator(sa: Set): Generator;
export declare function reverseIterator(sa: Set): Generator;
export declare const toArray: (sa: Set) => A[];
export declare const toList: (sa: Set) => List;
export declare const toVector: (sa: Set) => Vector;
export declare const view: (sa: Set) => View;
export declare const contains_: (O: Ord, sa: Set, x: A) => boolean;
export declare const all_: (sa: Set, p: (a: A) => boolean) => boolean;
export declare const any_: (sa: Set, p: (a: A) => boolean) => boolean;
export declare const count_: (sa: Set, p: (a: A) => boolean) => number;
export declare const elem_: (sa: Set, idx: number) => A;
export declare const elemOption_: (sa: Set, idx: number) => Option;
export declare const take_: (sa: Set, n: number) => Set;
export declare const takeRight_: (sa: Set, n: number) => Set;
export declare const drop_: (sa: Set, n: number) => Set;
export declare const dropRight_: (sa: Set, n: number) => Set;
export declare const slice_: (sa: Set, from: number, until: number) => Set;
export declare const insert_: (O: Ord, sa: Set, x: A) => Set;
export declare const remove_: (O: Ord, sa: Set, x: A) => Set;
export declare const union_: (O: Ord, l: Set, r: Set) => Set;
export declare const intersection_: (O: Ord, l: Set, r: Set) => Set;
export declare const difference_: (O: Ord, l: Set, r: Set) => Set;
export declare const symmetricDifference_: (O: Ord, l: Set, r: Set) => Set;
export declare const split_: (O: Ord, sa: Set, x: A) => [Set, Set];
export declare const splitMember_: (O: Ord, sa: Set, x: A) => [Set, boolean, Set];
export declare const filter_: (sa: Set, p: (a: A) => boolean) => Set;
export declare const map_: (O: Ord, sa: Set, f: (a: A) => B) => Set;
export declare const forEach_: (sa: Set, f: (a: A) => void) => void;
export declare const partition_: (sa: Set, p: (a: A) => boolean) => [Set, Set];
export declare const foldLeft_: (sa: Set, z: B, f: (b: B, x: A) => B) => B;
export declare const foldLeft1_: (sa: Set, f: (b: A, x: A) => A) => A;
export declare const foldRight_: (sa: Set, ez: Eval, f: (x: A, eb: Eval) => Eval) => Eval;
export declare const foldRightStrict_: (sa: Set, z: B, f: (x: A, b: B) => B) => B;
export declare const foldRight1_: (sa: Set, f: (x: A, b: A) => A) => A;
export declare const foldMap_: (M: Monoid) => (sa: Set, f: (a: A) => M) => M;
export declare const foldMapLeft_: (M: Monoid) => (sa: Set, f: (a: A) => M) => M;
export declare const foldMapK_: (F: MonoidK) => (sa: Set, f: (a: A) => Kind) => Kind;
export declare const equals_: (E: Eq) => (l: Set, r: Set) => boolean;
export declare const isValid: (O: Ord, sa: Set) => boolean;
export declare const isOrdered: (O: Ord, sa: Set) => boolean;
export declare const isBalanced: (sa: Set) => boolean;
export declare const hasValidSize: (sa: Set) => boolean;
export declare const _link: (x: A, l: Set, r: Set) => Set;
export declare const _insertMax: (x: A, sa: Set) => Set;
//# sourceMappingURL=operators.d.ts.map