interface BitFieldOptions { /** * If you `set` an index that is out-of-bounds, the bitfield * will automatically grow so that the bitfield is big enough * to contain the given index, up to the given size (in bit). * * If you want the Bitfield to grow indefinitely, pass `Infinity`. * * @default 0. */ grow?: number; } export default class BitField { /** * Grow the bitfield up to this number of entries. * @default 0. */ private readonly grow; /** The internal storage of the bitfield. */ buffer: Uint8Array; /** The number of bits in the bitfield. */ get length(): number; /** * Constructs a BitField. * * @param data Either a number representing the maximum number of supported bits, or a Uint8Array. * @param opts Options for the bitfield. */ constructor(data?: number | Uint8Array, options?: BitFieldOptions); /** * Get a particular bit. * * @param bitIndex Bit index to retrieve. * @returns A boolean indicating whether the `i`th bit is set. */ get(bitIndex: number): boolean; /** * Set a particular bit. * * Will grow the underlying array if the bit is out of bounds and the `grow` option is set. * * @param bitIndex Bit index to set. * @param value Value to set the bit to. Defaults to `true`. */ set(bitIndex: number, value?: boolean): void; /** * Sets a value or an array of values. * * @param array An array of booleans to set. * @param offset The bit offset at which the values are to be written. */ setAll(array: ArrayLike, offset?: number): void; /** * Loop through the bits in the bitfield. * * @param callbackfn Function to be called with the bit value and index. * @param start Index of the first bit to look at. * @param end Index of the first bit that should no longer be considered. */ forEach(callbackfn: (bit: boolean, index: number) => void, start?: number, end?: number): void; /** * Check if all bits in the Bitfield are unset. * * @returns A boolean indicating whether all bits are unset. */ isEmpty(): boolean; } export {}; //# sourceMappingURL=index.d.ts.map