import type ISet from './ISet';
export default class Set<T = number> implements ISet<T> {
    private readonly _data;
    constructor(...inputs: Readonly<T[]>);
    get data(): T[];
    get size(): number;
    has(element: T): boolean;
    add(element: T): T | null;
    delete(element: T): T | null;
    clear(): T[];
    union(set: Set<T>): Set<T>;
    intersection(set: Set<T>): Set<T>;
    difference(set: Set<T>): Set<T>;
    isSubsetOf(set: Set<T>): boolean;
    contains(set: Set<T>): boolean;
    static union<T>(set1: Set<T>, set2: Set<T>): Set<T>;
    static intersection<T>(set1: Set<T>, set2: Set<T>): Set<T>;
    static difference<T>(set1: Set<T>, set2: Set<T>): Set<T>;
    static isSubset<T>(set1: Set<T>, set2: Set<T>): boolean;
    private [Symbol.toPrimitive];
}
