export declare class TLBBinaryOp { readonly left: TLBMathExpr; readonly right: TLBMathExpr; readonly operation: string; readonly variables: Set; readonly hasNeg: boolean; constructor(left: TLBMathExpr, right: TLBMathExpr, operation: string, variables?: Set, hasNeg?: boolean); } export declare class TLBNumberExpr { readonly n: number; readonly variables: Set; readonly hasNeg: boolean; constructor(n: number, variables?: Set, hasNeg?: boolean); } export declare class TLBUnaryOp { readonly value: TLBMathExpr; readonly operation: string; readonly variables: Set; readonly hasNeg: boolean; constructor(value: TLBMathExpr, operation: string, variables?: Set, hasNeg?: boolean); } export declare class TLBVarExpr { readonly x: string; readonly variables: Set; readonly hasNeg: boolean; constructor(x: string, variables?: Set, hasNeg?: boolean); } export type TLBMathExpr = TLBBinaryOp | TLBNumberExpr | TLBVarExpr | TLBUnaryOp; export type TLBVariableType = 'Type' | '#'; export declare class TLBVariable { readonly isConst: boolean; readonly negated: boolean; readonly type: TLBVariableType; readonly name: string; readonly isField: boolean; readonly deriveExpr?: TLBMathExpr | undefined; readonly initialExpr?: TLBMathExpr | undefined; constructor(isConst: boolean, negated: boolean, type: TLBVariableType, name: string, isField: boolean, deriveExpr?: TLBMathExpr | undefined, initialExpr?: TLBMathExpr | undefined); } export type TLBBitsType = { kind: 'TLBBitsType'; bits: TLBMathExpr; }; export type TLBNamedType = { kind: 'TLBNamedType'; name: string; arguments: TLBFieldType[]; }; export type TLBMathExprType = { kind: 'TLBExprMathType'; expr: TLBMathExpr; initialExpr: TLBMathExpr; }; export type TLBCoinsType = { kind: 'TLBCoinsType'; }; export type TLBAddressType = { kind: 'TLBAddressType'; addrType: 'Internal' | 'External' | 'Any'; }; export type TLBVarIntegerType = { kind: 'TLBVarIntegerType'; signed: boolean; n: TLBMathExpr; }; export type TLBHashmapType = { kind: 'TLBHashmapType'; key: TLBMathExprType; value: TLBFieldType; extra?: TLBFieldType; directStore: boolean; }; export type TLBCellType = { kind: 'TLBCellType'; }; export type TLBNumberType = { kind: 'TLBNumberType'; bits: TLBMathExpr; signed: boolean; storeBits: TLBMathExpr; maxBits: number | undefined; }; export type TLBNegatedType = { kind: 'TLBNegatedType'; variableName: string; }; export type TLBCellInsideType = { kind: 'TLBCellInsideType'; value: TLBFieldType; }; export type TLBMultipleType = { kind: 'TLBMultipleType'; value: TLBFieldType; times: TLBMathExpr; }; export type TLBTupleType = { kind: 'TLBTupleType'; }; export type TLBCondType = { kind: 'TLBCondType'; value: TLBFieldType; condition: TLBMathExpr; }; export type TLBExoticType = { kind: 'TLBExoticType'; }; export type TLBBoolType = { kind: 'TLBBoolType'; value: boolean | undefined; }; export type TLBFieldType = TLBNumberType | TLBBoolType | TLBBitsType | TLBNamedType | TLBCoinsType | TLBAddressType | TLBHashmapType | TLBVarIntegerType | TLBCellType | TLBMathExprType | TLBNegatedType | TLBCellInsideType | TLBMultipleType | TLBTupleType | TLBCondType | TLBExoticType; export type TLBField = { name: string; anonymous: boolean; fieldType: TLBFieldType; subFields: TLBField[]; }; export declare class TLBParameter { readonly variable: TLBVariable; readonly paramExpr: TLBMathExpr; readonly argName?: string | undefined; constructor(variable: TLBVariable, paramExpr: TLBMathExpr, argName?: string | undefined); } export type TLBConstructorTag = { bitLen: number; binary: string; }; export declare class TLBConstructor { readonly parameters: Array; readonly variables: Array; readonly variablesMap: Map; readonly parametersMap: Map; readonly name: string; readonly fields: Array; readonly tag: TLBConstructorTag; readonly constraints: Array; readonly declaration: string; readonly tlbType: string; constructor(parameters: Array, variables: Array, variablesMap: Map, parametersMap: Map, name: string, fields: Array, tag: TLBConstructorTag, constraints: Array, declaration: string, tlbType: string); } export declare class TLBType { readonly name: string; readonly constructors: Array; constructor(name: string, constructors: Array); } export declare class TLBCode { readonly types: Map; constructor(types: Map); }