import Maybe from '../Maybe'; import Dict from '../Dict'; import { Set as _ } from './Set'; export interface Set { min(): Maybe; max(): Maybe; member(key: K): boolean; insert(key: K): Set; remove(key: K): Set; toggle(key: K): Set; size(): number; isEmpty(): boolean; map(fn: (key: K) => R): Set; filter(fn: (key: K) => boolean): Set; partition(fn: (key: K) => boolean): [Set, Set]; foldl(fn: (key: K, acc: R) => R, acc: R): R; foldr(fn: (key: K, acc: R) => R, acc: R): R; union(another: Set): Set; intersect(another: Set): Set; diff(another: Set): Set; keys(): Array; tap(fn: (that: Set) => R): R; } export declare namespace Set { type Key = Dict.Key; const empty: _; const singleton: typeof _.singleton; const fromList: typeof _.fromList; } export declare type Key = Set.Key; export declare const empty: _; export declare const singleton: typeof _.singleton; export declare const fromList: typeof _.fromList; export default Set;