export declare const HashSetPatchSym: unique symbol; export type HashSetPatchSym = typeof HashSetPatchSym; export declare const HashSetPatchValueSym: unique symbol; export type HashSetPatchValueSym = typeof HashSetPatchValueSym; /** * A patch which describes updates to a set of values. * * @tsplus type Differ.HashSet.Patch */ export interface HashSetPatch { readonly [HashSetPatchSym]: HashSetPatchSym; readonly [HashSetPatchValueSym]: (_: Value) => Value; } /** * @tsplus type Differ.HashSet.Patch.Ops */ export interface HashSetPatchOps { readonly $: HashSetPatchAspects; } /** * @tsplus static Differ.Ops HashSet * @tsplus location "@tsplus/stdlib/collections/HashSet/patch/definition" */ export declare const HashSetPatch: HashSetPatchOps; /** * @tsplus type Differ.HashSet.Patch.Aspects */ export interface HashSetPatchAspects { } /** * @tsplus unify Differ.HashSet.Patch */ export declare function unifyHashSetPatch>(self: X): HashSetPatch<[ X ] extends [{ [HashSetPatchValueSym]: (_: infer Value) => infer Value; }] ? Value : never>; export declare abstract class BaseHashSetPatch implements HashSetPatch { readonly [HashSetPatchSym]: HashSetPatchSym; readonly [HashSetPatchValueSym]: (_: Value) => Value; } export declare class AddHashSetPatch extends BaseHashSetPatch { readonly value: Value; readonly _tag = "Add"; constructor(value: Value); } export declare class AndThenHashSetPatch extends BaseHashSetPatch { readonly first: HashSetPatch; readonly second: HashSetPatch; readonly _tag = "AndThen"; constructor(first: HashSetPatch, second: HashSetPatch); } export declare class EmptyHashSetPatch extends BaseHashSetPatch { readonly _tag = "Empty"; } export declare class RemoveHashSetPatch extends BaseHashSetPatch { readonly value: Value; readonly _tag = "Remove"; constructor(value: Value); } export type HashSetPatchInstruction = AddHashSetPatch | AndThenHashSetPatch | EmptyHashSetPatch | RemoveHashSetPatch; /** * @tsplus macro identity */ export declare function hashSetPatchInstruction(self: HashSetPatch): HashSetPatchInstruction; //# sourceMappingURL=definition.d.ts.map