export type Octal = "8" | "16" | "24" | "32" | "48" | "56" | "64" | "72" | "80" | "88" | "96" | "104" | "112" | "120" | "128" | "136" | "144" | "152" | "160" | "168" | "176" | "184" | "192" | "200" | "208" | "216" | "224" | "232" | "240" | "248" | "256"; export declare const isOctal: (expression: string) => expression is Octal; export type Digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"; export type Digits = `${bigint}` & `${Digit}${string}`; export type Natural = Digits & `${Exclude}${string}`; export type Whole = Natural | "0"; export declare const isWhole: (expression: string) => expression is Whole; export type NaturalLessThanEqualToEighty = Exclude | `${Exclude}${Digit}` | "80"; export declare const isNaturalLessThanEqualToEighty: (expression: string) => expression is NaturalLessThanEqualToEighty; export type NaturalLessThanEqualToThirtyTwo = Exclude | `${"1" | "2"}${Digit}` | "30" | "31" | "32"; export declare const isNaturalLessThanEqualToThirtyTwo: (expression: string) => expression is NaturalLessThanEqualToThirtyTwo; export declare namespace Type { namespace Elementary { type Uint = "uint" | `uint${Octal}`; const isUint: (expression: string) => expression is Uint; type Int = "int" | `int${Octal}`; const isInt: (expression: string) => expression is Int; type Address = "address"; const isAddress: (expression: string) => expression is "address"; type Bool = "bool"; const isBool: (expression: string) => expression is "bool"; type Ufixed = "ufixed" | `ufixed${Octal}x${NaturalLessThanEqualToEighty}`; const isUfixed: (expression: string) => expression is Ufixed; type Fixed = "fixed" | `fixed${Octal}x${NaturalLessThanEqualToEighty}`; const isFixed: (expression: string) => expression is Fixed; type StaticBytes = `bytes${NaturalLessThanEqualToThirtyTwo}`; const isStaticBytes: (expression: string) => expression is "bytes8" | "bytes16" | "bytes24" | "bytes32" | "bytes1" | "bytes2" | "bytes3" | "bytes4" | "bytes5" | "bytes6" | "bytes7" | "bytes9" | "bytes18" | "bytes10" | "bytes11" | "bytes12" | "bytes13" | "bytes14" | "bytes15" | "bytes17" | "bytes19" | "bytes28" | "bytes20" | "bytes21" | "bytes22" | "bytes23" | "bytes25" | "bytes26" | "bytes27" | "bytes29" | "bytes30" | "bytes31"; type Bytes = "bytes"; const isBytes: (expression: string) => expression is "bytes"; type String = "string"; const isString: (expression: string) => expression is "string"; type Function = "function"; const isFunction: (expression: string) => expression is "function"; } type Elementary = Elementary.Uint | Elementary.Int | Elementary.Address | Elementary.Bool | Elementary.Ufixed | Elementary.Fixed | Elementary.StaticBytes | Elementary.Bytes | Elementary.String | Elementary.Function; const isElementary: (expression: string) => expression is Elementary; namespace Array { type Static = `${string}[${Whole}]`; const isStatic: (expression: string) => expression is `${string}[0]` | `${string}[${bigint}]`; const length: (type: Static) => number; type Dynamic = `${string}[]`; const isDynamic: (expression: string) => expression is `${string}[]`; const underlying: (type: Array) => Type; } type Array = Array.Static | Array.Dynamic; const isArray: (expression: string) => expression is Array; type Tuple = "tuple"; const isTuple: (expression: string) => expression is "tuple"; } export type Type = Type.Elementary | Type.Array | Type.Tuple; export declare const isType: (expression: string) => expression is Type; //# sourceMappingURL=type.d.ts.map