/// <reference types="node" />
import { BigNumber } from '@ethersproject/bignumber';
declare abstract class DataStr {
    val: string;
    constructor(val: string);
    toString(): string;
    toJSON(): string;
    eq(n: DataStr): boolean;
    abstract toBigNumber(): BigNumber;
}
export declare class HexString extends DataStr {
    isHex: boolean;
    constructor(val: string);
    toBigNumber(): BigNumber;
    byteLength(): number;
    protected assertLength(len: number): void;
    static from(val: string): HexString;
    toUintString(): UintString;
    toBuffer(): Buffer;
}
export declare class NumString extends DataStr {
    isNum: boolean;
    constructor(val: string);
    static from(val: string): NumString;
    toBigNumber(): BigNumber;
    toBytes(): HexString;
    toBuffer(): Buffer;
}
export declare type bytes = 'byte' | 'bytes2' | 'bytes3';
export declare class UintString extends NumString {
    isUint: boolean;
    constructor(val: string);
    assertThreshold(threshold: string): void;
    static from(val: string): UintString;
    toHexString(): HexString;
}
export declare class IntString extends NumString {
    isInt: boolean;
    constructor(val: string);
    assertThreshold(threshold: string): void;
    static from(val: string): IntString;
}
export declare class Bytes extends HexString {
    isBytes: boolean;
    constructor(val: string);
    static from(val: string): Bytes;
}
export declare class Byte extends HexString {
    isByte: boolean;
    constructor(val: string);
    static from(val: string): Byte;
    toUint(): Uint8;
}
export declare class Bytes2 extends HexString {
    isBytes2: boolean;
    constructor(val: string);
    static from(val: string): Bytes2;
    toUint(): Uint16;
}
export declare class Bytes3 extends HexString {
    isBytes3: boolean;
    constructor(val: string);
    static from(val: string): Bytes3;
    toUint(): Uint24;
}
export declare class Bytes4 extends HexString {
    isBytes4: boolean;
    constructor(val: string);
    static from(val: string): Bytes4;
    toUint(): Uint32;
}
export declare class Bytes5 extends HexString {
    isBytes5: boolean;
    constructor(val: string);
    static from(val: string): Bytes5;
    toUint(): Uint40;
}
export declare class Bytes6 extends HexString {
    isBytes6: boolean;
    constructor(val: string);
    static from(val: string): Bytes6;
    toUint(): Uint48;
}
export declare class Bytes7 extends HexString {
    isBytes7: boolean;
    constructor(val: string);
    static from(val: string): Bytes7;
    toUint(): Uint56;
}
export declare class Bytes8 extends HexString {
    isBytes8: boolean;
    constructor(val: string);
    static from(val: string): Bytes8;
    toUint(): Uint64;
}
export declare class Bytes9 extends HexString {
    isBytes9: boolean;
    constructor(val: string);
    static from(val: string): Bytes9;
    toUint(): Uint72;
}
export declare class Bytes10 extends HexString {
    isBytes10: boolean;
    constructor(val: string);
    static from(val: string): Bytes10;
    toUint(): Uint80;
}
export declare class Bytes11 extends HexString {
    isBytes11: boolean;
    constructor(val: string);
    static from(val: string): Bytes11;
    toUint(): Uint88;
}
export declare class Bytes12 extends HexString {
    isBytes12: boolean;
    constructor(val: string);
    static from(val: string): Bytes12;
    toUint(): Uint96;
}
export declare class Bytes13 extends HexString {
    isBytes13: boolean;
    constructor(val: string);
    static from(val: string): Bytes13;
    toUint(): Uint104;
}
export declare class Bytes14 extends HexString {
    isBytes14: boolean;
    constructor(val: string);
    static from(val: string): Bytes14;
    toUint(): Uint112;
}
export declare class Bytes15 extends HexString {
    isBytes15: boolean;
    constructor(val: string);
    static from(val: string): Bytes15;
    toUint(): Uint120;
}
export declare class Bytes16 extends HexString {
    isBytes16: boolean;
    constructor(val: string);
    static from(val: string): Bytes16;
    toUint(): Uint128;
}
export declare class Bytes17 extends HexString {
    isBytes17: boolean;
    constructor(val: string);
    static from(val: string): Bytes17;
    toUint(): Uint136;
}
export declare class Bytes18 extends HexString {
    isBytes18: boolean;
    constructor(val: string);
    static from(val: string): Bytes18;
    toUint(): Uint144;
}
export declare class Bytes19 extends HexString {
    isBytes19: boolean;
    constructor(val: string);
    static from(val: string): Bytes19;
    toUint(): Uint152;
}
export declare class Bytes20 extends HexString {
    isBytes20: boolean;
    constructor(val: string);
    static from(val: string): Bytes20;
    toUint(): Uint160;
    toAddress(): Address;
}
export declare class Bytes21 extends HexString {
    isBytes21: boolean;
    constructor(val: string);
    static from(val: string): Bytes21;
    toUint(): Uint168;
}
export declare class Bytes22 extends HexString {
    isBytes22: boolean;
    constructor(val: string);
    static from(val: string): Bytes22;
    toUint(): Uint176;
}
export declare class Bytes23 extends HexString {
    isBytes23: boolean;
    constructor(val: string);
    static from(val: string): Bytes23;
    toUint(): Uint184;
}
export declare class Bytes24 extends HexString {
    isBytes24: boolean;
    constructor(val: string);
    static from(val: string): Bytes24;
    toUint(): Uint192;
}
export declare class Bytes25 extends HexString {
    isBytes25: boolean;
    constructor(val: string);
    static from(val: string): Bytes25;
    toUint(): Uint200;
}
export declare class Bytes26 extends HexString {
    isBytes26: boolean;
    constructor(val: string);
    static from(val: string): Bytes26;
    toUint(): Uint208;
}
export declare class Bytes27 extends HexString {
    isBytes27: boolean;
    constructor(val: string);
    static from(val: string): Bytes27;
    toUint(): Uint216;
}
export declare class Bytes28 extends HexString {
    isBytes28: boolean;
    constructor(val: string);
    static from(val: string): Bytes28;
    toUint(): Uint224;
}
export declare class Bytes29 extends HexString {
    isBytes29: boolean;
    constructor(val: string);
    static from(val: string): Bytes29;
    toUint(): Uint232;
}
export declare class Bytes30 extends HexString {
    isBytes30: boolean;
    constructor(val: string);
    static from(val: string): Bytes30;
    toUint(): Uint240;
}
export declare class Bytes31 extends HexString {
    isBytes31: boolean;
    constructor(val: string);
    static from(val: string): Bytes31;
    toUint(): Uint248;
}
export declare class Bytes32 extends HexString {
    isBytes32: boolean;
    constructor(val: string);
    static from(val: string): Bytes32;
    toUint(): Uint256;
}
export declare class Uint8 extends UintString {
    isUint8: boolean;
    constructor(val: string);
    static from(val: string): Uint8;
    toByte(): Byte;
}
export declare class Uint16 extends UintString {
    isUint16: boolean;
    constructor(val: string);
    static from(val: string): Uint16;
    toBytes(): Bytes2;
}
export declare class Uint24 extends UintString {
    isUint24: boolean;
    constructor(val: string);
    static from(val: string): Uint24;
    toBytes(): Bytes3;
}
export declare class Uint32 extends UintString {
    isUint32: boolean;
    constructor(val: string);
    static from(val: string): Uint32;
    toBytes(): Bytes4;
}
export declare class Uint40 extends UintString {
    isUint40: boolean;
    constructor(val: string);
    static from(val: string): Uint40;
    toBytes(): Bytes5;
}
export declare class Uint48 extends UintString {
    isUint48: boolean;
    constructor(val: string);
    static from(val: string): Uint48;
    toBytes(): Bytes6;
}
export declare class Uint56 extends UintString {
    isUint56: boolean;
    constructor(val: string);
    static from(val: string): Uint56;
    toBytes(): Bytes7;
}
export declare class Uint64 extends UintString {
    isUint64: boolean;
    constructor(val: string);
    static from(val: string): Uint64;
    toBytes(): Bytes8;
}
export declare class Uint72 extends UintString {
    isUint72: boolean;
    constructor(val: string);
    static from(val: string): Uint72;
    toBytes(): Bytes9;
}
export declare class Uint80 extends UintString {
    isUint80: boolean;
    constructor(val: string);
    static from(val: string): Uint80;
    toBytes(): Bytes10;
}
export declare class Uint88 extends UintString {
    isUint88: boolean;
    constructor(val: string);
    static from(val: string): Uint88;
    toBytes(): Bytes11;
}
export declare class Uint96 extends UintString {
    isUint96: boolean;
    constructor(val: string);
    static from(val: string): Uint96;
    toBytes(): Bytes12;
}
export declare class Uint104 extends UintString {
    isUint104: boolean;
    constructor(val: string);
    static from(val: string): Uint104;
    toBytes(): Bytes13;
}
export declare class Uint112 extends UintString {
    isUint112: boolean;
    constructor(val: string);
    static from(val: string): Uint112;
    toBytes(): Bytes14;
}
export declare class Uint120 extends UintString {
    isUint120: boolean;
    constructor(val: string);
    static from(val: string): Uint120;
    toBytes(): Bytes15;
}
export declare class Uint128 extends UintString {
    isUint128: boolean;
    constructor(val: string);
    static from(val: string): Uint128;
    toBytes(): Bytes16;
}
export declare class Uint136 extends UintString {
    isUint136: boolean;
    constructor(val: string);
    static from(val: string): Uint136;
    toBytes(): Bytes17;
}
export declare class Uint144 extends UintString {
    isUint144: boolean;
    constructor(val: string);
    static from(val: string): Uint144;
    toBytes(): Bytes18;
}
export declare class Uint152 extends UintString {
    isUint152: boolean;
    constructor(val: string);
    static from(val: string): Uint152;
    toBytes(): Bytes19;
}
export declare class Uint160 extends UintString {
    isUint160: boolean;
    constructor(val: string);
    static from(val: string): Uint160;
    toBytes(): Bytes20;
}
export declare class Uint168 extends UintString {
    isUint168: boolean;
    constructor(val: string);
    static from(val: string): Uint168;
    toBytes(): Bytes21;
}
export declare class Uint176 extends UintString {
    isUint176: boolean;
    constructor(val: string);
    static from(val: string): Uint176;
    toBytes(): Bytes22;
}
export declare class Uint184 extends UintString {
    isUint184: boolean;
    constructor(val: string);
    static from(val: string): Uint184;
    toBytes(): Bytes23;
}
export declare class Uint192 extends UintString {
    isUint192: boolean;
    constructor(val: string);
    static from(val: string): Uint192;
    toBytes(): Bytes24;
}
export declare class Uint200 extends UintString {
    isUint200: boolean;
    constructor(val: string);
    static from(val: string): Uint200;
    toBytes(): Bytes25;
}
export declare class Uint208 extends UintString {
    isUint208: boolean;
    constructor(val: string);
    static from(val: string): Uint208;
    toBytes(): Bytes26;
}
export declare class Uint216 extends UintString {
    isUint216: boolean;
    constructor(val: string);
    static from(val: string): Uint216;
    toBytes(): Bytes27;
}
export declare class Uint224 extends UintString {
    isUint224: boolean;
    constructor(val: string);
    static from(val: string): Uint224;
    toBytes(): Bytes28;
}
export declare class Uint232 extends UintString {
    isUint232: boolean;
    constructor(val: string);
    static from(val: string): Uint232;
    toBytes(): Bytes29;
}
export declare class Uint240 extends UintString {
    isUint240: boolean;
    constructor(val: string);
    static from(val: string): Uint240;
    toBytes(): Bytes30;
}
export declare class Uint248 extends UintString {
    isUint248: boolean;
    constructor(val: string);
    static from(val: string): Uint248;
    toBytes(): Bytes31;
}
export declare class Uint256 extends UintString {
    isUint256: boolean;
    constructor(val: string);
    static from(val: string): Uint256;
    toBytes(): Bytes32;
}
export declare class Int8 extends IntString {
    isInt8: boolean;
    constructor(val: string);
    static from(val: string): Int8;
}
export declare class Int16 extends IntString {
    isInt16: boolean;
    constructor(val: string);
    static from(val: string): Int16;
}
export declare class Int24 extends IntString {
    isInt24: boolean;
    constructor(val: string);
    static from(val: string): Int24;
}
export declare class Int32 extends IntString {
    isInt32: boolean;
    constructor(val: string);
    static from(val: string): Int32;
}
export declare class Int40 extends IntString {
    isInt40: boolean;
    constructor(val: string);
    static from(val: string): Int40;
}
export declare class Int48 extends IntString {
    isInt48: boolean;
    constructor(val: string);
    static from(val: string): Int48;
}
export declare class Int56 extends IntString {
    isInt56: boolean;
    constructor(val: string);
    static from(val: string): Int56;
}
export declare class Int64 extends IntString {
    isInt64: boolean;
    constructor(val: string);
    static from(val: string): Int64;
}
export declare class Int72 extends IntString {
    isInt72: boolean;
    constructor(val: string);
    static from(val: string): Int72;
}
export declare class Int80 extends IntString {
    isInt80: boolean;
    constructor(val: string);
    static from(val: string): Int80;
}
export declare class Int88 extends IntString {
    isInt88: boolean;
    constructor(val: string);
    static from(val: string): Int88;
}
export declare class Int96 extends IntString {
    isInt96: boolean;
    constructor(val: string);
    static from(val: string): Int96;
}
export declare class Int104 extends IntString {
    isInt104: boolean;
    constructor(val: string);
    static from(val: string): Int104;
}
export declare class Int112 extends IntString {
    isInt112: boolean;
    constructor(val: string);
    static from(val: string): Int112;
}
export declare class Int120 extends IntString {
    isInt120: boolean;
    constructor(val: string);
    static from(val: string): Int120;
}
export declare class Int128 extends IntString {
    isInt128: boolean;
    constructor(val: string);
    static from(val: string): Int128;
}
export declare class Int136 extends IntString {
    isInt136: boolean;
    constructor(val: string);
    static from(val: string): Int136;
}
export declare class Int144 extends IntString {
    isInt144: boolean;
    constructor(val: string);
    static from(val: string): Int144;
}
export declare class Int152 extends IntString {
    isInt152: boolean;
    constructor(val: string);
    static from(val: string): Int152;
}
export declare class Int160 extends IntString {
    isInt160: boolean;
    constructor(val: string);
    static from(val: string): Int160;
}
export declare class Int168 extends IntString {
    isInt168: boolean;
    constructor(val: string);
    static from(val: string): Int168;
}
export declare class Int176 extends IntString {
    isInt176: boolean;
    constructor(val: string);
    static from(val: string): Int176;
}
export declare class Int184 extends IntString {
    isInt184: boolean;
    constructor(val: string);
    static from(val: string): Int184;
}
export declare class Int192 extends IntString {
    isInt192: boolean;
    constructor(val: string);
    static from(val: string): Int192;
}
export declare class Int200 extends IntString {
    isInt200: boolean;
    constructor(val: string);
    static from(val: string): Int200;
}
export declare class Int208 extends IntString {
    isInt208: boolean;
    constructor(val: string);
    static from(val: string): Int208;
}
export declare class Int216 extends IntString {
    isInt216: boolean;
    constructor(val: string);
    static from(val: string): Int216;
}
export declare class Int224 extends IntString {
    isInt224: boolean;
    constructor(val: string);
    static from(val: string): Int224;
}
export declare class Int232 extends IntString {
    isInt232: boolean;
    constructor(val: string);
    static from(val: string): Int232;
}
export declare class Int240 extends IntString {
    isInt240: boolean;
    constructor(val: string);
    static from(val: string): Int240;
}
export declare class Int248 extends IntString {
    isInt248: boolean;
    constructor(val: string);
    static from(val: string): Int248;
}
export declare class Int256 extends IntString {
    isInt256: boolean;
    constructor(val: string);
    static from(val: string): Int256;
}
export declare class Address extends Bytes20 {
    constructor(val: string);
    static from(val: string): Address;
    /**
     * @dev Check EIP-55 for the details
     * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-55.md#implementation
     * @param address Ethereum 20 bytes address value
     */
    static toChecksumAddress(address: string): string;
}
export {};
