import { BigNumberish } from "ethers"; export declare function hexJoin(hexStrings: string[]): string; export declare function remove0x(hexString: string): string; export declare function encodeVLQ(x: BigNumberish): string; export declare function encodePseudoFloat(x: BigNumberish): string; export declare function encodeRegIndex(regIndex: BigNumberish): string; /** * Bit streams are just the bits of a uint256 encoded as a VLQ. * (Technically the encoding is unbounded, but 256 booleans is a lot and it's * much easier to just decode the VLQ into a uint256 in the EVM.) * * Notably, the bits are little endian - the first bit is the *lowest* bit. This * is because the lowest bit is clearly the 1-valued bit, but the highest valued * bit could be anywhere - there's infinitely many zero-bits to choose from. * * If it wasn't for this need to be little endian, we'd definitely use big * endian (like our other encodings generally do), since that's preferred by the * EVM and the ecosystem: * * ```ts * const abi = new ethers.utils.AbiCoder(): * console.log(abi.encode(["uint"], [0xff])); * // 0x00000000000000000000000000000000000000000000000000000000000000ff * * // If Ethereum used little endian (like x86), it would instead be: * // 0xff00000000000000000000000000000000000000000000000000000000000000 * ``` */ export declare function encodeBitStream(bitStream: boolean[]): string; //# sourceMappingURL=encodeUtils.d.ts.map