import { Fn, Transceiver, TransceiverMode } from "atom.io/internal"; import { primitive } from "atom.io/foundations/json"; import { Subject } from "atom.io/foundations/subject"; import { Enumeration } from "atom.io/foundations/enumeration"; //#region src/transceivers/u-list/u-list.d.ts type SetMutations = Exclude, symbol | keyof ReadonlySet>; type SetUpdate

= { type: `add` | `delete`; value: P; } | { type: `clear`; values: P[]; }; type UListUpdateType = SetUpdate[`type`]; type PackedSetUpdate

= string & { update?: SetUpdate

; }; declare const SET_UPDATE_ENUM: Enumeration<[`add`, `delete`, `clear`]>; type SetMutationHandler = { [K in UListUpdateType]: Fn; }; type UListView

= ReadonlySet

& { subscribe: (key: string, fn: (update: PackedSetUpdate

) => void) => () => void; }; declare class UList

extends Set

implements Transceiver, PackedSetUpdate

, ReadonlyArray

>, SetMutationHandler { mode: TransceiverMode; readonly subject: Subject>; constructor(values?: Iterable

); readonly READONLY_VIEW: UListView

; toJSON(): ReadonlyArray

; static fromJSON

(json: ReadonlyArray

): UList

; add(value: P): this; clear(): void; delete(value: P): boolean; subscribe(key: string, fn: (update: PackedSetUpdate

) => void): () => void; emit(update: SetUpdate

): void; do(packed: PackedSetUpdate

): null; undo(packed: PackedSetUpdate

): number | null; static packUpdate

(update: SetUpdate

): PackedSetUpdate

; static unpackUpdate

(packed: PackedSetUpdate

): SetUpdate

; } //#endregion export { PackedSetUpdate, SET_UPDATE_ENUM, SetMutationHandler, SetMutations, SetUpdate, UList, UListUpdateType, UListView }; //# sourceMappingURL=index.d.ts.map