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

export default class Set<T> {
    on: {
        added: Signal<T>,
        removed: Signal<T>
    }

    constructor(data?: T[])

    contains(el: T): boolean

    add(el: T): boolean

    remove(el: T): boolean

    isEmpty(): boolean

    clear(): void

    setFromArray(source: T[]): void

    forEach(callback: (el: T) => void, thisArg?: any): void

    asArray(): T[]
}
