import Signal from "../../../../core/events/signal/Signal";

export class IncrementalDeltaSet<T> {
    readonly elements: T[]
    readonly version: number
    readonly size: number

    readonly onAdded: Signal<T>
    readonly onRemoved: Signal<T>

    constructor(compare: (a: T, b: T) => number)

    contains(element: T): boolean

    push(element: T): void

    forceRemove(element: T): boolean

    clear(): void

    initializeUpdate(): void

    finalizeUpdate(): void
}
