import { BasicUintConstructable, Uint } from "./uint.js";
import { AbstractIterator } from "./utils.js";
declare class BSetEntriesIterator<K extends Uint> extends AbstractIterator<[K, K], [string, string]> {
    protected CLS: BasicUintConstructable<K>;
    constructor(CLS: BasicUintConstructable<K>, setEntries: IterableIterator<[string, string]>);
    protected _next(value: [string, string]): [K, K];
}
declare class BSetIterator<K extends Uint> extends AbstractIterator<K, string> {
    protected CLS: BasicUintConstructable<K>;
    constructor(CLS: BasicUintConstructable<K>, setEntries: IterableIterator<string>);
    protected _next(value: string): K;
}
export declare class BasicBinarySet<K extends Uint> {
    protected readonly CLS: BasicUintConstructable<K>;
    protected readonly store: Set<string>;
    constructor(CLS: BasicUintConstructable<K>, values?: readonly K[]);
    get size(): number;
    add(value: K): K;
    delete(value: K): boolean;
    has(value: K): boolean;
    [Symbol.iterator](): BSetIterator<K>;
    entries(): BSetEntriesIterator<K>;
    keys(): BSetIterator<K>;
    values(): BSetIterator<K>;
    forEach(callbackfn: (value: K) => void, thisArg?: any): void;
    clear(): void;
    protected getStringTag(): string;
    get [Symbol.toStringTag](): string;
}
export declare class UintSet extends BasicBinarySet<Uint> {
    constructor(values?: readonly Uint[]);
}
export {};
