export type BitFieldResolvable<T extends object> = keyof T | number | bigint | (keyof T | number | bigint)[];
export declare class BitField<T extends object> {
    static None: bigint;
    Flags: Record<string, bigint>;
    protected bit: bigint;
    constructor(bitfields?: BitFieldResolvable<T>);
    set bits(bits: BitFieldResolvable<T>);
    get bits(): bigint;
    has(...bits: BitFieldResolvable<T>[]): boolean;
    missings(...bits: BitFieldResolvable<T>[]): bigint[];
    equals(other: BitFieldResolvable<T>): boolean;
    keys(bits?: BitFieldResolvable<T>[]): string[];
    values(bits?: BitFieldResolvable<T>[]): bigint[];
    add(...bits: (BitFieldResolvable<T> | undefined)[]): bigint;
    remove(...bits: BitFieldResolvable<T>[]): bigint;
    resolve(...bits: BitFieldResolvable<T>[]): bigint;
}
