import { Action, Atom, AtomMut, Ctx } from '@reatom/core'; export interface SetLikeAtom extends AtomMut> { __reatomSet: true; } export interface SetAtom extends SetLikeAtom { add: Action<[el: T], Set>; delete: Action<[el: T], Set>; toggle: Action<[el: T], Set>; clear: Action<[], Set>; reset: Action<[], Set>; intersection: Action<[set: Set], Set>; union: Action<[set: Set], Set>; difference: Action<[set: Set], Set>; symmetricDifference: Action<[set: Set], Set>; has: (ctx: Ctx, el: T) => boolean; isSubsetOf: (ctx: Ctx, set: Set) => boolean; isSupersetOf: (ctx: Ctx, set: Set) => boolean; isDisjointFrom: (ctx: Ctx, set: Set) => boolean; size: (ctx: Ctx) => number; /** @deprecated */ set: Action<[el: T], Set>; sizeAtom: Atom; } type FirstSetConstructorParam = ConstructorParameters>[0]; export declare const reatomSet: (initState?: Set | FirstSetConstructorParam, name?: string) => SetAtom; export declare const isSetAtom: (thing: any) => thing is SetLikeAtom; export {}; //# sourceMappingURL=reatomSet.d.ts.map