export declare const legos: { aave: { ATokenAbi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; LendingPoolAddressesProvider: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; LendingPool: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; LendingPoolCore: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; anonymous?: undefined; inputs?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; aETH: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aDAI: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aUSDC: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aSUSD: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aTUSD: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aUSDT: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aBUSD: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aBAT: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aKNC: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aLEND: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aLINK: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aMANA: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aMKR: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aREP: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aSNX: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aWBTC: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; aZRX: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; }; }; aragon: { artifacts: { companyTemplate: { contractName: string; abi: ({ inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; bytecode: string; deployedBytecode: string; compiler: { name: string; version: string; }; }; agent: { contractName: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; bytecode: string; deployedBytecode: string; compiler: { name: string; version: string; }; }; finance: { contractName: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; bytecode: string; deployedBytecode: string; compiler: { name: string; version: string; }; }; kernel: { contractName: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; bytecode: string; deployedBytecode: string; }; miniMeToken: { contractName: string; abi: ({ inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; bytecode: string; deployedBytecode: string; }; miniMeTokenFactory: { contractName: string; abi: { constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; }[]; bytecode: string; deployedBytecode: string; }; payroll: { contractName: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; bytecode: string; deployedBytecode: string; }; survey: { contractName: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; bytecode: string; deployedBytecode: string; }; tokenManager: { contractName: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; bytecode: string; }; vault: { contractName: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; bytecode: string; deployedBytecode: string; }; voting: { contractName: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; bytecode: string; deployedBytecode: string; }; }; }; balancer: { PoolFactory: { abi: ({ inputs: never[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; BActions: { abi: { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; }[]; address: string; }; ExchangeProxy: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: ({ components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; } | { internalType: string; name: string; type: string; components?: undefined; })[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; BPool: { abi: ({ inputs: never[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; }; badger: { artifacts: { digg: { orchestrator: { contractName: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; bytecode: string; deployedBytecode: string; }; uFragments: { contractName: string; abi: ({ anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; bytecode: string; deployedBytecode: string; }; uFragmentsPolicy: { contractName: string; abi: ({ constant: boolean; inputs: never[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: never[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; bytecode: string; deployedBytecode: string; }; }; geyser: { badgerGeyser: { fileName: string; contractName: string; source: string; sourcePath: string; sourceMap: string; deployedSourceMap: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; ast: { absolutePath: string; exportedSymbols: { BadgerGeyser: number[]; }; id: number; license: null; nodeType: string; nodes: ({ id: number; literals: string[]; nodeType: string; src: string; absolutePath?: undefined; file?: undefined; scope?: undefined; sourceUnit?: undefined; symbolAliases?: undefined; unitAlias?: undefined; abstract?: undefined; baseContracts?: undefined; contractDependencies?: undefined; contractKind?: undefined; documentation?: undefined; fullyImplemented?: undefined; linearizedBaseContracts?: undefined; name?: undefined; nodes?: undefined; } | { absolutePath: string; file: string; id: number; nodeType: string; scope: number; sourceUnit: number; src: string; symbolAliases: never[]; unitAlias: string; literals?: undefined; abstract?: undefined; baseContracts?: undefined; contractDependencies?: undefined; contractKind?: undefined; documentation?: undefined; fullyImplemented?: undefined; linearizedBaseContracts?: undefined; name?: undefined; nodes?: undefined; } | { abstract: boolean; baseContracts: { arguments: null; baseName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; contractDependencies: number[]; contractKind: string; documentation: { id: number; nodeType: string; src: string; text: string; }; fullyImplemented: boolean; id: number; linearizedBaseContracts: number[]; name: string; nodeType: string; nodes: ({ id: number; libraryName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; keyType?: undefined; valueType?: undefined; baseType?: undefined; length?: undefined; stateMutability?: undefined; }; anonymous?: undefined; documentation?: undefined; name?: undefined; parameters?: undefined; constant?: undefined; mutability?: undefined; overrides?: undefined; scope?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; visibility?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; body?: undefined; virtual?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { anonymous: boolean; documentation: null; id: number; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; indexed: boolean; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; } | { constant: boolean; id: number; indexed: boolean; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; stateMutability?: undefined; }; value: null; visibility: string; })[]; src: string; }; src: string; libraryName?: undefined; typeName?: undefined; constant?: undefined; mutability?: undefined; overrides?: undefined; scope?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; visibility?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; body?: undefined; virtual?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; keyType?: undefined; valueType?: undefined; baseType?: undefined; length?: undefined; stateMutability?: undefined; }; value: null; visibility: string; libraryName?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; body?: undefined; virtual?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { constant: boolean; functionSelector: string; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; keyType?: undefined; valueType?: undefined; baseType?: undefined; length?: undefined; stateMutability?: undefined; }; value: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; visibility: string; libraryName?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; canonicalName?: undefined; members?: undefined; body?: undefined; virtual?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { constant: boolean; functionSelector: string; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; keyType?: undefined; valueType?: undefined; baseType?: undefined; length?: undefined; stateMutability?: undefined; }; value: null; visibility: string; libraryName?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; canonicalName?: undefined; members?: undefined; body?: undefined; virtual?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; keyType?: undefined; valueType?: undefined; baseType?: undefined; length?: undefined; stateMutability?: undefined; }; value: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; visibility: string; libraryName?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; body?: undefined; virtual?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; keyType?: undefined; valueType?: undefined; baseType?: undefined; length?: undefined; stateMutability?: undefined; }; value: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; subdenomination?: undefined; value?: undefined; }; visibility: string; libraryName?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; body?: undefined; virtual?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { canonicalName: string; id: number; members: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; name: string; nodeType: string; scope: number; src: string; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; constant?: undefined; mutability?: undefined; overrides?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; functionSelector?: undefined; body?: undefined; virtual?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; keyType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; valueType: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseType?: undefined; length?: undefined; }; name?: undefined; contractScope?: undefined; referencedDeclaration?: undefined; baseType?: undefined; length?: undefined; stateMutability?: undefined; }; value: null; visibility: string; libraryName?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; body?: undefined; virtual?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; keyType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; valueType: { baseType: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: null; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; name?: undefined; referencedDeclaration?: undefined; }; name?: undefined; contractScope?: undefined; referencedDeclaration?: undefined; baseType?: undefined; length?: undefined; stateMutability?: undefined; }; value: null; visibility: string; libraryName?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; body?: undefined; virtual?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { constant: boolean; functionSelector: string; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: null; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; contractScope?: undefined; referencedDeclaration?: undefined; keyType?: undefined; valueType?: undefined; stateMutability?: undefined; }; value: null; visibility: string; libraryName?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; canonicalName?: undefined; members?: undefined; body?: undefined; virtual?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { constant: boolean; functionSelector: string; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; keyType?: undefined; valueType?: undefined; baseType?: undefined; length?: undefined; }; value: null; visibility: string; libraryName?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; canonicalName?: undefined; members?: undefined; body?: undefined; virtual?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; } | { id: number; nodeType: string; src: string; expression?: undefined; })[]; }; documentation: null; id: number; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; src: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; scope?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; })[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; stateMutability?: undefined; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; stateMutability?: undefined; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; }; value: null; visibility: string; })[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; })[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; } | { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: { arguments: never[]; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; stateMutability?: undefined; }; value: null; visibility: string; })[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; arguments: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: null; typeString: null; }; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; condition: { argumentTypes: null; components: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseExpression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; trueExpression: { argumentTypes: null; arguments: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; baseExpression?: undefined; indexExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; arguments: ({ argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; } | { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: null; typeString: null; }; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; arguments?: undefined; expression?: undefined; names?: undefined; tryCall?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: ({ argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; arguments?: undefined; expression?: undefined; names?: undefined; tryCall?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; expression?: undefined; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; stateMutability?: undefined; }; value: null; visibility: string; })[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; } | { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; expression?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; components: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; expression?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: null; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; expression?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; arguments?: undefined; expression?: undefined; names?: undefined; tryCall?: undefined; baseExpression?: undefined; indexExpression?: undefined; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; expression?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; baseExpression?: undefined; indexExpression?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; expression?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; baseExpression?: undefined; indexExpression?: undefined; arguments?: undefined; expression?: undefined; names?: undefined; tryCall?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; arguments?: undefined; expression?: undefined; names?: undefined; tryCall?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; })[]; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; })[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; expression?: undefined; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; components?: undefined; isInlineArray?: undefined; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; components?: undefined; isConstant?: undefined; isInlineArray?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; expression?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; arguments?: undefined; expression?: undefined; names?: undefined; tryCall?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: ({ argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; arguments?: undefined; expression?: undefined; names?: undefined; tryCall?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; expression?: undefined; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; eventCall?: undefined; })[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; stateMutability?: undefined; }; value: null; visibility: string; })[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; })[]; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; subdenomination?: undefined; value?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; })[]; }; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; subdenomination?: undefined; value?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; })[]; }; }[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: null; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; arguments?: undefined; expression?: undefined; names?: undefined; tryCall?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; })[]; }; documentation: null; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; stateMutability?: undefined; }; value: null; visibility: string; })[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; expression?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; documentation: null; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; components: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; } | { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; })[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: { arguments: never[]; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; expression?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: null; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; expression?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; components?: undefined; isInlineArray?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; arguments?: undefined; expression?: undefined; names?: undefined; tryCall?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; baseExpression?: undefined; indexExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; nodeType: string; src: string; expression?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: ({ argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; } | { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; initializationExpression: { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; nodeType: string; src: string; }; loopExpression: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }; nodeType: string; src: string; expression?: undefined; assignments?: undefined; declarations?: undefined; initialValue?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; components?: undefined; isInlineArray?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; components?: undefined; isInlineArray?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; components: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; expression?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; })[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: null; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; condition?: undefined; falseBody?: undefined; trueBody?: undefined; })[]; }; documentation: null; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; stateMutability?: undefined; }; value: null; visibility: string; })[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; documentation: null; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; expression?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; components: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; memberName?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; documentation: null; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; stateMutability?: undefined; }; value: null; visibility: string; })[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: null; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; condition?: undefined; falseBody?: undefined; trueBody?: undefined; })[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; trueExpression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; arguments: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: null; typeString: null; }; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; components?: undefined; isInlineArray?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; components?: undefined; isInlineArray?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; components?: undefined; isInlineArray?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; components?: undefined; isInlineArray?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; components?: undefined; isInlineArray?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; condition: { argumentTypes: null; components: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; trueExpression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; baseExpression?: undefined; indexExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; components: ({ argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; memberName?: undefined; referencedDeclaration?: undefined; name?: undefined; overloadedDeclarations?: undefined; } | { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; name?: undefined; overloadedDeclarations?: undefined; } | { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; memberName?: undefined; })[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; functionReturnParameters: number; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; documentation: null; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: { arguments: null; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; condition: { argumentTypes: null; components: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseExpression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; trueExpression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: null; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; arguments: ({ argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; typeName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; name?: undefined; overloadedDeclarations?: undefined; } | { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: null; typeString: null; }; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; memberName?: undefined; referencedDeclaration?: undefined; name?: undefined; overloadedDeclarations?: undefined; } | { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; arguments?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; arguments?: undefined; expression?: undefined; names?: undefined; tryCall?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: ({ argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; } | { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; expression?: undefined; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; documentation: null; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; arguments?: undefined; expression?: undefined; names?: undefined; tryCall?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; nodeType: string; src: string; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; expression?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; initializationExpression: { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; nodeType: string; src: string; }; loopExpression: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; expression?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; })[]; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: null; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: ({ argumentTypes: null; arguments: ({ argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: null; typeString: null; }; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; } | { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; arguments?: undefined; expression?: undefined; names?: undefined; tryCall?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: ({ argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; } | { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; expression?: undefined; })[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; condition?: undefined; falseBody?: undefined; trueBody?: undefined; })[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; expression?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; documentation: null; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; canonicalName?: undefined; members?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: null; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: null; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; baseExpression?: undefined; indexExpression?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; })[]; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; components: { argumentTypes: null; arguments: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; components?: undefined; isInlineArray?: undefined; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; })[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; condition?: undefined; falseBody?: undefined; trueBody?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; functionReturnParameters: number; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; condition?: undefined; falseBody?: undefined; trueBody?: undefined; })[]; }; documentation: { id: number; nodeType: string; src: string; text: string; }; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; libraryName?: undefined; typeName?: undefined; anonymous?: undefined; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; functionSelector?: undefined; canonicalName?: undefined; members?: undefined; })[]; scope: number; src: string; literals?: undefined; absolutePath?: undefined; file?: undefined; sourceUnit?: undefined; symbolAliases?: undefined; unitAlias?: undefined; })[]; src: string; }; bytecode: string; deployedBytecode: string; compiler: { name: string; version: string; optimizer: { enabled: boolean; runs: number; }; evmVersion: string; }; }; badgerGeyserEscrowFactory: { fileName: string; contractName: string; source: string; sourcePath: string; sourceMap: string; deployedSourceMap: string; abi: ({ inputs: never[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; ast: { absolutePath: string; exportedSymbols: { BadgerGeyserEscrowFactory: number[]; }; id: number; license: null; nodeType: string; nodes: ({ id: number; literals: string[]; nodeType: string; src: string; absolutePath?: undefined; file?: undefined; scope?: undefined; sourceUnit?: undefined; symbolAliases?: undefined; unitAlias?: undefined; abstract?: undefined; baseContracts?: undefined; contractDependencies?: undefined; contractKind?: undefined; documentation?: undefined; fullyImplemented?: undefined; linearizedBaseContracts?: undefined; name?: undefined; nodes?: undefined; } | { absolutePath: string; file: string; id: number; nodeType: string; scope: number; sourceUnit: number; src: string; symbolAliases: never[]; unitAlias: string; literals?: undefined; abstract?: undefined; baseContracts?: undefined; contractDependencies?: undefined; contractKind?: undefined; documentation?: undefined; fullyImplemented?: undefined; linearizedBaseContracts?: undefined; name?: undefined; nodes?: undefined; } | { abstract: boolean; baseContracts: { arguments: null; baseName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; contractDependencies: number[]; contractKind: string; documentation: { id: number; nodeType: string; src: string; text: string; }; fullyImplemented: boolean; id: number; linearizedBaseContracts: number[]; name: string; nodeType: string; nodes: ({ constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; keyType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; valueType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; baseType?: undefined; length?: undefined; }; value: null; visibility: string; functionSelector?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; virtual?: undefined; } | { constant: boolean; functionSelector: string; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: null; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; keyType?: undefined; valueType?: undefined; }; value: null; visibility: string; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; virtual?: undefined; } | { anonymous: boolean; documentation: null; id: number; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; indexed: boolean; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; stateMutability?: undefined; }; value: null; visibility: string; } | { constant: boolean; id: number; indexed: boolean; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; stateMutability?: undefined; }; value: null; visibility: string; } | { constant: boolean; id: number; indexed: boolean; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; }; value: null; visibility: string; })[]; src: string; }; src: string; constant?: undefined; mutability?: undefined; overrides?: undefined; scope?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; typeName?: undefined; value?: undefined; visibility?: undefined; functionSelector?: undefined; body?: undefined; implemented?: undefined; kind?: undefined; modifiers?: undefined; returnParameters?: undefined; stateMutability?: undefined; virtual?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: never[]; }; documentation: null; id: number; implemented: boolean; kind: string; modifiers: { arguments: never[]; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; typeName?: undefined; value?: undefined; functionSelector?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: null; typeString: null; }; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; tryCall?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; expression?: undefined; })[]; }; documentation: null; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: { arguments: null; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; stateMutability?: undefined; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; stateMutability?: undefined; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; }; value: null; visibility: string; })[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; stateMutability: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; typeName?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: null; typeString: null; }; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; })[]; }; documentation: null; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: { arguments: null; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; }; value: null; visibility: string; })[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; typeName?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: ({ argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: null; typeString: null; }; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; kind?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: null; typeString: null; }; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; } | { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; expression?: undefined; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; documentation: null; functionSelector: string; id: number; implemented: boolean; kind: string; modifiers: { arguments: null; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; }; value: null; visibility: string; })[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; typeName?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: never[]; expression: { argumentTypes: never[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: ({ argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: null; typeString: null; }; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; } | { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; kind?: undefined; lValueRequested?: undefined; names?: undefined; tryCall?: undefined; })[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; tryCall: boolean; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; expression?: undefined; })[]; }; documentation: null; id: number; implemented: boolean; kind: string; modifiers: never[]; name: string; nodeType: string; overrides: null; parameters: { id: number; nodeType: string; parameters: ({ constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; } | { constant: boolean; id: number; mutability: string; name: string; nodeType: string; overrides: null; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; contractScope?: undefined; referencedDeclaration?: undefined; }; value: null; visibility: string; })[]; src: string; }; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; virtual: boolean; visibility: string; constant?: undefined; mutability?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; typeName?: undefined; value?: undefined; functionSelector?: undefined; anonymous?: undefined; })[]; scope: number; src: string; literals?: undefined; absolutePath?: undefined; file?: undefined; sourceUnit?: undefined; symbolAliases?: undefined; unitAlias?: undefined; })[]; src: string; }; bytecode: string; deployedBytecode: string; compiler: { name: string; version: string; optimizer: { enabled: boolean; runs: number; }; evmVersion: string; }; }; }; oracle: { constantOracle: { contractName: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; name?: undefined; outputs?: undefined; } | { inputs: never[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; })[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; medianOracle: { contractName: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; bytecode: string; deployedBytecode: string; sourceMap: string; deployedSourceMap: string; source: string; sourcePath: string; ast: { absolutePath: string; exportedSymbols: { IOracle: number[]; MedianOracle: number[]; }; id: number; nodeType: string; nodes: ({ id: number; literals: string[]; nodeType: string; src: string; absolutePath?: undefined; file?: undefined; scope?: undefined; sourceUnit?: undefined; symbolAliases?: undefined; unitAlias?: undefined; baseContracts?: undefined; contractDependencies?: undefined; contractKind?: undefined; documentation?: undefined; fullyImplemented?: undefined; linearizedBaseContracts?: undefined; name?: undefined; nodes?: undefined; } | { absolutePath: string; file: string; id: number; nodeType: string; scope: number; sourceUnit: number; src: string; symbolAliases: never[]; unitAlias: string; literals?: undefined; baseContracts?: undefined; contractDependencies?: undefined; contractKind?: undefined; documentation?: undefined; fullyImplemented?: undefined; linearizedBaseContracts?: undefined; name?: undefined; nodes?: undefined; } | { baseContracts: never[]; contractDependencies: never[]; contractKind: string; documentation: null; fullyImplemented: boolean; id: number; linearizedBaseContracts: number[]; name: string; nodeType: string; nodes: { body: null; documentation: null; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: never[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; }[]; scope: number; src: string; literals?: undefined; absolutePath?: undefined; file?: undefined; sourceUnit?: undefined; symbolAliases?: undefined; unitAlias?: undefined; } | { baseContracts: { arguments: null; baseName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; contractDependencies: number[]; contractKind: string; documentation: string; fullyImplemented: boolean; id: number; linearizedBaseContracts: number[]; name: string; nodeType: string; nodes: ({ id: number; libraryName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseType?: undefined; length?: undefined; keyType?: undefined; valueType?: undefined; }; canonicalName?: undefined; members?: undefined; name?: undefined; scope?: undefined; visibility?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { canonicalName: string; id: number; members: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; name: string; nodeType: string; scope: number; src: string; visibility: string; libraryName?: undefined; typeName?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: null; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; keyType?: undefined; valueType?: undefined; }; value: null; visibility: string; libraryName?: undefined; canonicalName?: undefined; members?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; keyType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; valueType: { baseType: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: null; typeString: null; }; value: string; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; name?: undefined; baseType?: undefined; length?: undefined; }; value: null; visibility: string; libraryName?: undefined; canonicalName?: undefined; members?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { anonymous: boolean; documentation: null; id: number; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; indexed: boolean; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; src: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; scope?: undefined; visibility?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseType?: undefined; length?: undefined; keyType?: undefined; valueType?: undefined; }; value: null; visibility: string; libraryName?: undefined; canonicalName?: undefined; members?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseType?: undefined; length?: undefined; keyType?: undefined; valueType?: undefined; }; value: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; visibility: string; libraryName?: undefined; canonicalName?: undefined; members?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseType?: undefined; length?: undefined; keyType?: undefined; valueType?: undefined; }; value: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; visibility: string; libraryName?: undefined; canonicalName?: undefined; members?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; }; id: number; nodeType: string; src: string; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: never[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; }; id: number; nodeType: string; src: string; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: { arguments: null; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; }; id: number; nodeType: string; src: string; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: { arguments: null; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; components?: undefined; isInlineArray?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: null; typeString: null; }; value: string; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; components?: undefined; isInlineArray?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: null; typeString: null; }; value: string; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; components: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; baseExpression?: undefined; indexExpression?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; trueExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; baseExpression?: undefined; indexExpression?: undefined; components?: undefined; isInlineArray?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; baseExpression?: undefined; indexExpression?: undefined; components?: undefined; isInlineArray?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; expression?: undefined; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: never[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; expression?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: never[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; typeName?: undefined; expression?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; kind?: undefined; names?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: null; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: null; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; expression?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; memberName?: undefined; referencedDeclaration?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; arguments?: undefined; names?: undefined; }; nodeType: string; src: string; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; typeName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; memberName?: undefined; referencedDeclaration?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: null; typeString: null; }; value: string; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; trueExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { id: number; nodeType: string; src: string; statements: { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; }[]; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; initializationExpression: { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; nodeType: string; src: string; }; loopExpression: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: null; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; components: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; initializationExpression?: undefined; loopExpression?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; components: ({ argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; arguments?: undefined; expression?: undefined; names?: undefined; })[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; falseBody?: undefined; trueBody?: undefined; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: never[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: number; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; }; id: number; nodeType: string; src: string; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; expression?: undefined; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: { arguments: null; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: null; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: ({ condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: null; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; } | { id: number; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; eventCall?: undefined; })[]; }; }[]; }; condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; initializationExpression: { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; nodeType: string; src: string; }; loopExpression: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }; nodeType: string; src: string; expression?: undefined; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: { arguments: null; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: never[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; })[]; scope: number; src: string; literals?: undefined; absolutePath?: undefined; file?: undefined; sourceUnit?: undefined; symbolAliases?: undefined; unitAlias?: undefined; })[]; src: string; }; legacyAST: { absolutePath: string; exportedSymbols: { IOracle: number[]; MedianOracle: number[]; }; id: number; nodeType: string; nodes: ({ id: number; literals: string[]; nodeType: string; src: string; absolutePath?: undefined; file?: undefined; scope?: undefined; sourceUnit?: undefined; symbolAliases?: undefined; unitAlias?: undefined; baseContracts?: undefined; contractDependencies?: undefined; contractKind?: undefined; documentation?: undefined; fullyImplemented?: undefined; linearizedBaseContracts?: undefined; name?: undefined; nodes?: undefined; } | { absolutePath: string; file: string; id: number; nodeType: string; scope: number; sourceUnit: number; src: string; symbolAliases: never[]; unitAlias: string; literals?: undefined; baseContracts?: undefined; contractDependencies?: undefined; contractKind?: undefined; documentation?: undefined; fullyImplemented?: undefined; linearizedBaseContracts?: undefined; name?: undefined; nodes?: undefined; } | { baseContracts: never[]; contractDependencies: never[]; contractKind: string; documentation: null; fullyImplemented: boolean; id: number; linearizedBaseContracts: number[]; name: string; nodeType: string; nodes: { body: null; documentation: null; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: never[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; }[]; scope: number; src: string; literals?: undefined; absolutePath?: undefined; file?: undefined; sourceUnit?: undefined; symbolAliases?: undefined; unitAlias?: undefined; } | { baseContracts: { arguments: null; baseName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; contractDependencies: number[]; contractKind: string; documentation: string; fullyImplemented: boolean; id: number; linearizedBaseContracts: number[]; name: string; nodeType: string; nodes: ({ id: number; libraryName: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseType?: undefined; length?: undefined; keyType?: undefined; valueType?: undefined; }; canonicalName?: undefined; members?: undefined; name?: undefined; scope?: undefined; visibility?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { canonicalName: string; id: number; members: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; name: string; nodeType: string; scope: number; src: string; visibility: string; libraryName?: undefined; typeName?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: null; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; keyType?: undefined; valueType?: undefined; }; value: null; visibility: string; libraryName?: undefined; canonicalName?: undefined; members?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; keyType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; valueType: { baseType: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: null; typeString: null; }; value: string; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; name?: undefined; baseType?: undefined; length?: undefined; }; value: null; visibility: string; libraryName?: undefined; canonicalName?: undefined; members?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { anonymous: boolean; documentation: null; id: number; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; indexed: boolean; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; src: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; scope?: undefined; visibility?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseType?: undefined; length?: undefined; keyType?: undefined; valueType?: undefined; }; value: null; visibility: string; libraryName?: undefined; canonicalName?: undefined; members?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseType?: undefined; length?: undefined; keyType?: undefined; valueType?: undefined; }; value: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; visibility: string; libraryName?: undefined; canonicalName?: undefined; members?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseType?: undefined; length?: undefined; keyType?: undefined; valueType?: undefined; }; value: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; visibility: string; libraryName?: undefined; canonicalName?: undefined; members?: undefined; anonymous?: undefined; documentation?: undefined; parameters?: undefined; body?: undefined; implemented?: undefined; isConstructor?: undefined; isDeclaredConst?: undefined; modifiers?: undefined; payable?: undefined; returnParameters?: undefined; stateMutability?: undefined; superFunction?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; }; id: number; nodeType: string; src: string; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: never[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; }; id: number; nodeType: string; src: string; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: { arguments: null; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; }; id: number; nodeType: string; src: string; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: { arguments: null; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; components?: undefined; isInlineArray?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: null; typeString: null; }; value: string; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; components?: undefined; isInlineArray?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: null; typeString: null; }; value: string; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; components: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; baseExpression?: undefined; indexExpression?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; trueExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; baseExpression?: undefined; indexExpression?: undefined; components?: undefined; isInlineArray?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; baseExpression?: undefined; indexExpression?: undefined; components?: undefined; isInlineArray?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; }; nodeType: string; src: string; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; expression?: undefined; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: never[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; expression?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; }; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: never[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; typeName?: undefined; expression?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; kind?: undefined; names?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: null; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: null; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; name?: undefined; overloadedDeclarations?: undefined; referencedDeclaration?: undefined; expression?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; memberName?: undefined; referencedDeclaration?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; arguments?: undefined; names?: undefined; }; nodeType: string; src: string; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; typeName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; memberName?: undefined; referencedDeclaration?: undefined; hexValue?: undefined; subdenomination?: undefined; value?: undefined; }; nodeType: string; src: string; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { baseType: { contractScope: null; id: number; name: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; length: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: null; typeString: null; }; value: string; }; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; trueExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; expression?: undefined; memberName?: undefined; referencedDeclaration?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; baseExpression?: undefined; indexExpression?: undefined; condition?: undefined; falseExpression?: undefined; trueExpression?: undefined; commonType?: undefined; leftExpression?: undefined; operator?: undefined; rightExpression?: undefined; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { id: number; nodeType: string; src: string; statements: { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; }[]; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: ({ assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; }; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; })[]; }; condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; initializationExpression: { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; nodeType: string; src: string; }; loopExpression: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: null; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; components: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; initializationExpression?: undefined; loopExpression?: undefined; expression?: undefined; functionReturnParameters?: undefined; } | { expression: { argumentTypes: null; components: ({ argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; hexValue?: undefined; subdenomination?: undefined; value?: undefined; } | { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; arguments?: undefined; expression?: undefined; names?: undefined; })[]; id: number; isConstant: boolean; isInlineArray: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; assignments?: undefined; declarations?: undefined; initialValue?: undefined; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; falseBody?: undefined; trueBody?: undefined; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: never[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: number; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; arguments: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: number[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; expression?: undefined; isConstant?: undefined; isLValue?: undefined; isPure?: undefined; lValueRequested?: undefined; memberName?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; eventCall?: undefined; } | { expression: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; name?: undefined; overloadedDeclarations?: undefined; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; leftHandSide?: undefined; operator?: undefined; rightHandSide?: undefined; }; id: number; nodeType: string; src: string; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; expression: { argumentTypes: null; baseExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; arguments?: undefined; expression?: undefined; kind?: undefined; names?: undefined; }; id: number; nodeType: string; src: string; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; expression?: undefined; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: { arguments: null; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: ({ expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; body?: undefined; condition?: undefined; initializationExpression?: undefined; loopExpression?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: null; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: ({ condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; falseBody: null; id: number; nodeType: string; src: string; trueBody: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftHandSide: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightHandSide: { argumentTypes: null; baseExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; indexExpression: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }[]; }; expression?: undefined; eventCall?: undefined; } | { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; eventCall?: undefined; } | { eventCall: { argumentTypes: null; arguments: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }[]; expression: { argumentTypes: { typeIdentifier: string; typeString: string; }[]; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; names: never[]; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; } | { id: number; nodeType: string; src: string; condition?: undefined; falseBody?: undefined; trueBody?: undefined; expression?: undefined; eventCall?: undefined; })[]; }; }[]; }; condition: { argumentTypes: null; commonType: { typeIdentifier: string; typeString: string; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; leftExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; operator: string; rightExpression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; initializationExpression: { assignments: number[]; declarations: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; id: number; initialValue: { argumentTypes: null; hexValue: string; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; kind: string; lValueRequested: boolean; nodeType: string; src: string; subdenomination: null; typeDescriptions: { typeIdentifier: string; typeString: string; }; value: string; }; nodeType: string; src: string; }; loopExpression: { expression: { argumentTypes: null; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; nodeType: string; operator: string; prefix: boolean; src: string; subExpression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; nodeType: string; src: string; }; nodeType: string; src: string; expression?: undefined; })[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: { arguments: null; id: number; modifierName: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; nodeType: string; src: string; }[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: never[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; } | { body: { id: number; nodeType: string; src: string; statements: { expression: { argumentTypes: null; expression: { argumentTypes: null; id: number; name: string; nodeType: string; overloadedDeclarations: never[]; referencedDeclaration: number; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; id: number; isConstant: boolean; isLValue: boolean; isPure: boolean; lValueRequested: boolean; memberName: string; nodeType: string; referencedDeclaration: null; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; functionReturnParameters: number; id: number; nodeType: string; src: string; }[]; }; documentation: string; id: number; implemented: boolean; isConstructor: boolean; isDeclaredConst: boolean; modifiers: never[]; name: string; nodeType: string; parameters: { id: number; nodeType: string; parameters: never[]; src: string; }; payable: boolean; returnParameters: { id: number; nodeType: string; parameters: { constant: boolean; id: number; name: string; nodeType: string; scope: number; src: string; stateVariable: boolean; storageLocation: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; typeName: { id: number; name: string; nodeType: string; src: string; typeDescriptions: { typeIdentifier: string; typeString: string; }; }; value: null; visibility: string; }[]; src: string; }; scope: number; src: string; stateMutability: string; superFunction: null; visibility: string; libraryName?: undefined; typeName?: undefined; canonicalName?: undefined; members?: undefined; constant?: undefined; stateVariable?: undefined; storageLocation?: undefined; typeDescriptions?: undefined; value?: undefined; anonymous?: undefined; })[]; scope: number; src: string; literals?: undefined; absolutePath?: undefined; file?: undefined; sourceUnit?: undefined; symbolAliases?: undefined; unitAlias?: undefined; })[]; src: string; }; compiler: { name: string; version: string; }; networks: {}; schemaVersion: string; updatedAt: string; }; }; sett: { badgerSett: { contractName: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; controller: { contractName: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; name?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; })[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; curveSCrvUniConverter: { contractName: string; abi: { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; }[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; strategyCurveRenBTC: { contractName: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; name?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; })[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; strategyCurveSBTC: { contractName: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; name?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; })[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; strategyUniEthWbtcLp: { contractName: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; name?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; })[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; }; timelock: { smartTimelock: { contractName: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; } | { stateMutability: string; type: string; inputs?: undefined; anonymous?: undefined; name?: undefined; outputs?: undefined; })[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; }; }; }; compound: { cToken: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; signature: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; signature?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; })[]; }; comptroller: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: never[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; })[]; }; priceOracle: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; }; cEther: { decimals: number; address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; }; cDAI: { decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; signature: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; signature?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; })[]; }; cSAI: { decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; signature: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; signature?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; })[]; }; cBAT: { decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; signature: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; signature?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; })[]; }; cZRX: { decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; signature: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; signature?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; })[]; }; cUSDC: { decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; signature: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; signature?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; })[]; }; cREP: { decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; signature: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; signature?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; })[]; }; cWBTC: { decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; signature: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; signature?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; })[]; }; }; curvefi: { poolTokenAbi: ({ name: string; inputs: { type: string; name: string; indexed: boolean; }[]; anonymous: boolean; type: string; outputs?: undefined; constant?: undefined; payable?: undefined; gas?: undefined; } | { outputs: never[]; inputs: { type: string; name: string; }[]; constant: boolean; payable: boolean; type: string; name?: undefined; anonymous?: undefined; gas?: undefined; } | { name: string; outputs: { type: string; name: string; }[]; inputs: { type: string; name: string; }[]; constant: boolean; payable: boolean; type: string; gas: number; anonymous?: undefined; })[]; curveAbi: ({ name: string; inputs: ({ type: string; name: string; indexed: boolean; unit: string; } | { type: string; name: string; indexed: boolean; unit?: undefined; })[]; anonymous: boolean; type: string; outputs?: undefined; constant?: undefined; payable?: undefined; gas?: undefined; } | { outputs: never[]; inputs: { type: string; name: string; }[]; constant: boolean; payable: boolean; type: string; name?: undefined; anonymous?: undefined; gas?: undefined; } | { name: string; outputs: never[]; inputs: ({ type: string; name: string; unit?: undefined; } | { type: string; unit: string; name: string; })[]; constant: boolean; payable: boolean; type: string; gas: number; anonymous?: undefined; } | { name: string; outputs: { type: string; name: string; }[]; inputs: { type: string; name: string; }[]; constant: boolean; payable: boolean; type: string; gas: number; anonymous?: undefined; } | { name: string; outputs: { type: string; unit: string; name: string; }[]; inputs: never[]; constant: boolean; payable: boolean; type: string; gas: number; anonymous?: undefined; })[]; zapAbi: ({ outputs: never[]; inputs: { type: string; name: string; }[]; constant: boolean; payable: boolean; type: string; name?: undefined; gas?: undefined; } | { name: string; outputs: { type: string; name: string; }[]; inputs: { type: string; name: string; }[]; constant: boolean; payable: boolean; type: string; gas: number; } | { name: string; outputs: never[]; inputs: { type: string; name: string; }[]; constant: boolean; payable: boolean; type: string; gas?: undefined; })[]; artifacts: { curve: { contractName: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: never[]; stateMutability: string; type: string; } | { inputs: never[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; })[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; minter: { contractName: string; abi: { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; }[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; votingEscrow: { contractName: string; abi: { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; }[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; zap: { contractName: string; abi: { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; }[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; gaugeRewards: { contractName: string; abi: { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; }[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; }; minter: { address: string; }; crvToken: { address: string; }; cDai_cUsdc: { nCoins: number; indexes: { dai: number; usdc: number; }; zap: { address: string; }; curve: { address: string; }; poolToken: { address: string; }; }; cDai_cUsdc_Usdt: { nCoins: number; indexes: { dai: number; usdc: number; usdt: number; }; zap: { address: string; }; curve: { address: string; }; poolToken: { address: string; }; }; yDai_yUsdc_yUsdt_ytUsd: { nCoins: number; indexes: { dai: number; usdc: number; usdt: number; tusd: number; }; zap: { address: string; }; curve: { address: string; }; poolToken: { address: string; }; }; renBTC_wBTC_sBTC: { nCoins: number; indexes: { renBTC: number; wBTC: number; sBTC: number; }; zap: { address: string; }; curve: { address: string; }; poolToken: { address: string; }; gaugeRewards: { address: string; }; }; renBTC_wBTC: { nCoins: number; indexes: { renBTC: number; wBTC: number; }; zap: { address: string; }; curve: { address: string; }; poolToken: { address: string; }; gaugeRewards: { address: string; }; }; }; dappsys: { dsProxy: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; dsProxyFactory: { abi: ({ inputs: never[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; }; dydx: { soloMargin: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: ({ components: { name: string; type: string; }[]; name: string; type: string; } | { name: string; type: string; components?: undefined; })[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; name: string; outputs: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: { components: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; name: string; type: string; }[]; name: string; outputs: never[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { components: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: ({ components: { components: { name: string; type: string; }[]; name: string; type: string; }[]; name: string; type: string; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; }; payableProxyForSoloMargin: { abi: ({ constant: boolean; inputs: never[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; } | { constant: boolean; inputs: ({ components: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; name: string; type: string; } | { name: string; type: string; components?: undefined; })[]; name: string; outputs: never[]; payable: boolean; stateMutability: string; type: string; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; })[]; address: string; }; polynomialInterestSetter: { abi: ({ constant: boolean; inputs: never[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; } | { constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; } | { inputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; })[]; address: string; }; expiry: { abi: ({ constant: boolean; inputs: ({ components: { name: string; type: string; }[]; name: string; type: string; } | { name: string; type: string; components?: undefined; })[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; address: string; }; expiryV2: { abi: ({ constant: boolean; inputs: ({ components: { name: string; type: string; }[]; name: string; type: string; } | { name: string; type: string; components?: undefined; })[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; address: string; }; daiPriceOracle: { abi: ({ constant: boolean; inputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: never[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { components: { name: string; type: string; }[]; indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; address: string; }; saiPriceOracle: { abi: ({ constant: boolean; inputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: never[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { components: { name: string; type: string; }[]; indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; address: string; }; wethPriceOracle: { abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; } | { constant: boolean; inputs: never[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; })[]; address: string; }; usdcPriceOracle: { abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; } | { constant: boolean; inputs: never[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; })[]; address: string; }; adminImpl: { abi: { anonymous: boolean; inputs: ({ indexed: boolean; name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; indexed: boolean; name: string; type: string; })[]; name: string; type: string; }[]; address: string; }; operationImpl: { abi: never[]; address: string; }; liquidatorProxyV1ForSoloMargin: { abi: ({ constant: boolean; inputs: never[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; } | { constant: boolean; inputs: ({ components: { name: string; type: string; }[]; name: string; type: string; } | { name: string; type: string; components?: undefined; })[]; name: string; outputs: never[]; payable: boolean; stateMutability: string; type: string; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; })[]; address: string; }; limitOrders: { abi: ({ constant: boolean; inputs: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; address: string; }; stopLimitOrders: { abi: ({ constant: boolean; inputs: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; address: string; }; canonicalOrders: { abi: ({ constant: boolean; inputs: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: ({ indexed: boolean; name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; indexed: boolean; name: string; type: string; })[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; address: string; }; signedOperationProxy: { abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: { components: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; name: string; type: string; }[]; name: string; outputs: never[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; address: string; }; refunder: { abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { constant: boolean; inputs: ({ name: string; type: string; components?: undefined; } | { components: { name: string; type: string; }[]; name: string; type: string; })[]; name: string; outputs: { components: { name: string; type: string; }[]; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: ({ components: { name: string; type: string; }[]; indexed: boolean; name: string; type: string; } | { indexed: boolean; name: string; type: string; components?: undefined; })[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; address: string; }; }; erc20: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; artifacts: { erc20: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; evm: { bytecode: { linkReferences: {}; object: string; opcodes: string; sourceMap: string; }; deployedBytecode: { immutableReferences: {}; linkReferences: {}; object: string; opcodes: string; sourceMap: string; }; }; metadata: string; interface: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; bytecode: string; }; weth: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; outputs?: undefined; stateMutability?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; evm: { bytecode: { linkReferences: {}; object: string; opcodes: string; sourceMap: string; }; deployedBytecode: { immutableReferences: {}; linkReferences: {}; object: string; opcodes: string; sourceMap: string; }; }; metadata: string; interface: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; outputs?: undefined; stateMutability?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; bytecode: string; }; }; eth: { symbol: string; decimals: number; address: string; }; bat: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; dai: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; rep: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; sai: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; snx: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; usdc: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; weth: { symbol: string; decimals: number; address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; }; wbtc: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; renbtc: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; sbtc: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; zrx: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; bal: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; ulox: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; yfi: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; link: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; ampl: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; usdt: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; crv: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; comp: { symbol: string; decimals: number; address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; }; idle: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; decimals: number; maxYield: { dai: { address: string; }; usdc: { address: string; }; usdt: { address: string; }; susd: { address: string; }; tusd: { address: string; }; wbtc: { address: string; }; }; riskAdjusted: { dai: { address: string; }; usdc: { address: string; }; usdt: { address: string; }; }; }; gnosissafe: { artifacts: { defaultCallbackHandler: { contractName: string; abi: { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; }[]; bytecode: string; deployedBytecode: string; }; gnosisSafe: { contractName: string; abi: ({ inputs: never[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; bytecode: string; deployedBytecode: string; }; gnosisSafeProxy: { contractName: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; })[]; bytecode: string; deployedBytecode: string; }; gnosisSafeProxyFactory: { contractName: string; abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; bytecode: string; deployedBytecode: string; }; }; }; kyber: { network: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; }; }; maker: { ethUsdPriceFeed: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; type: string; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; })[]; }; batA: { symbol: string; token: { address: string; }; }; ethA: { symbol: string; token: { address: string; }; }; usdcA: { symbol: string; token: { address: string; }; }; proxyRegistry: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; })[]; }; dssCdpManager: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; dssProxyActions: { address: string; abi: { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; }[]; }; jug: { address: string; }; daiJoin: { address: string; }; batAJoin: { address: string; }; ethAJoin: { address: string; }; usdcJoin: { address: string; }; }; mstable: { mUSD: { symbol: string; decimals: number; abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; MTA: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; MassetValidationHelper: { abi: { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; }[]; address: string; }; ForgeValidator: { abi: { constant: boolean; inputs: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; })[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; }[]; address: string; }; BasketManager: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: ({ components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; } | { internalType: string; name: string; type: string; components?: undefined; })[]; internalType: string; name: string; type: string; })[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; AaveIntegration: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; CompoundIntegration: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; Nexus: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; DelayedProxyAdmin: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; SavingsManager: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; SavingsContract: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; RewardsDistributor: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; StakingRewardsWithPlatformToken: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; }; onesplit: { address: string; abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { payable: boolean; stateMutability: string; type: string; inputs?: undefined; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; }; synthetix: { Synthetix: { abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; address: string; }; ExchangeRates: { abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; address: string; }; Exchanger: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; name?: undefined; constant?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; signature: string; payable?: undefined; stateMutability?: undefined; constant?: undefined; outputs?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; })[]; address: string; }; Depot: { abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; constant?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; address: string; }; iADA: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iBCH: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iBNB: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iBTC: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iCEX: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iDASH: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iDEFI: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iEOS: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iETC: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iETH: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iLINK: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iLTC: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iTRX: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iXMR: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iXRP: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; iXTZ: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; signature?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sADA: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sAUD: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sBCH: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sBNB: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sBTC: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sCEX: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sCHF: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sDASH: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sDEFI: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sEOS: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sETC: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sETH: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sEUR: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sFTSE: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sGBP: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sJPY: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sLINK: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sLTC: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sNIKKEI: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sTRX: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sUSD: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sXAG: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sXAU: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sXMR: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sXRP: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; sXTZ: { address: string; abi: ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; anonymous?: undefined; } | { inputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; signature: string; constant?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; signature: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[]; decimals: number; }; }; uma: { addressWhitelist: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; outputs?: undefined; stateMutability?: undefined; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: never[]; stateMutability: string; type: string; anonymous?: undefined; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; })[]; address: string; }; designatedVotingFactory: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; expiringMultiParty: { abi: ({ inputs: { components: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; })[]; internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; })[]; name: string; outputs: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; })[]; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { components: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; })[]; internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; }; expiringMultiPartyLib: { abi: never[]; address: string; }; expiringMultiPartyCreator: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: never[]; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { components: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; })[]; internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; financialContractsAdmin: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; outputs?: undefined; stateMutability?: undefined; constant?: undefined; } | { inputs: never[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: never[]; stateMutability: string; type: string; anonymous?: undefined; constant?: undefined; })[]; address: string; }; finder: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; outputs?: undefined; stateMutability?: undefined; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: never[]; stateMutability: string; type: string; anonymous?: undefined; constant?: undefined; })[]; address: string; }; governor: { abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: ({ indexed: boolean; internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; indexed: boolean; internalType: string; name: string; type: string; })[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; }[]; name: string; outputs: never[]; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { components: ({ components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; } | { internalType: string; name: string; type: string; components?: undefined; })[]; internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; identifierWhitelist: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; outputs?: undefined; stateMutability?: undefined; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: never[]; stateMutability: string; type: string; anonymous?: undefined; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; })[]; address: string; }; registry: { abi: ({ inputs: never[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; constant?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: never[]; stateMutability: string; type: string; anonymous?: undefined; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; })[]; address: string; }; store: { abi: ({ inputs: ({ components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; } | { internalType: string; name: string; type: string; components?: undefined; })[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; constant?: undefined; payable?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; constant?: undefined; payable?: undefined; } | { anonymous: boolean; inputs: { components: { internalType: string; name: string; type: string; }[]; indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; constant?: undefined; payable?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; payable?: undefined; } | { inputs: never[]; name: string; outputs: never[]; stateMutability: string; type: string; payable: boolean; anonymous?: undefined; constant?: undefined; } | { inputs: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; })[]; name: string; outputs: never[]; stateMutability: string; type: string; anonymous?: undefined; constant?: undefined; payable?: undefined; } | { inputs: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; })[]; name: string; outputs: { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; payable?: undefined; })[]; address: string; }; tokenFactory: { abi: { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; }[]; address: string; }; voting: { abi: ({ inputs: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; })[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; })[]; stateMutability: string; type: string; anonymous?: undefined; } | { inputs: ({ internalType: string; name: string; type: string; components?: undefined; } | { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; })[]; name: string; outputs: { components: { internalType: string; name: string; type: string; }[]; internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; address: string; }; votingToken: { abi: ({ inputs: never[]; stateMutability: string; type: string; anonymous?: undefined; name?: undefined; outputs?: undefined; constant?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; constant?: undefined; })[]; address: string; }; weth9: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; payable?: undefined; outputs?: undefined; constant?: undefined; } | { stateMutability: string; type: string; payable: boolean; anonymous?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; constant: boolean; anonymous?: undefined; payable?: undefined; } | { inputs: never[]; name: string; outputs: never[]; stateMutability: string; type: string; payable: boolean; anonymous?: undefined; constant?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; payable?: undefined; constant?: undefined; })[]; address: string; }; }; uniswap: { artifacts: { factory: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; evm: { bytecode: { linkReferences: {}; object: string; opcodes: string; sourceMap: string; }; deployedBytecode: { linkReferences: {}; object: string; opcodes: string; sourceMap: string; }; }; metadata: string; interface: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; bytecode: string; }; exchange: { abi: { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; }[]; evm: { bytecode: { linkReferences: {}; object: string; opcodes: string; sourceMap: string; }; deployedBytecode: { immutableReferences: {}; linkReferences: {}; object: string; opcodes: string; sourceMap: string; }; }; metadata: string; interface: { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; }[]; bytecode: string; }; pair: { abi: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; evm: { bytecode: { linkReferences: {}; object: string; opcodes: string; sourceMap: string; }; deployedBytecode: { linkReferences: {}; object: string; opcodes: string; sourceMap: string; }; }; metadata: string; interface: ({ anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; } | { constant: boolean; inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; })[]; bytecode: string; }; uniStakingRewards: { contractName: string; abi: { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; }[]; bytecode: string; deployedBytecode: string; linkReferences: {}; deployedLinkReferences: {}; }; }; v1: { factory: { address: string; abi: ({ name: string; inputs: { type: string; name: string; indexed: boolean; }[]; anonymous: boolean; type: string; outputs?: undefined; constant?: undefined; payable?: undefined; gas?: undefined; } | { name: string; outputs: { type: string; name: string; }[]; inputs: { type: string; name: string; }[]; constant: boolean; payable: boolean; type: string; gas: number; anonymous?: undefined; })[]; }; exchange: { abi: ({ name: string; inputs: { type: string; name: string; indexed: boolean; }[]; anonymous: boolean; type: string; outputs?: undefined; constant?: undefined; payable?: undefined; gas?: undefined; } | { name: string; outputs: { type: string; name: string; }[]; inputs: { type: string; name: string; }[]; constant: boolean; payable: boolean; type: string; gas: number; anonymous?: undefined; } | { name: string; outputs: never[]; inputs: never[]; constant: boolean; payable: boolean; type: string; anonymous?: undefined; gas?: undefined; })[]; }; }; v2: { factory: { address: string; }; exchange: { address: string; }; pairs: { eth_wbtc: { address: string; }; }; }; uniToken: { address: string; }; uniStakingRewards: { eth_wbtc: { address: string; }; }; }; systems: { AragonSystem: typeof import("./systems/AragonSystem").AragonSystem; CurveSystem: typeof import("./systems/CurveSystem").CurveSystem; GnosisSafeSystem: typeof import("./systems/GnosisSafeSystem").GnosisSafeSystem; SettSystem: typeof import("./systems/SettSystem").SettSystem; TokenContracts: typeof import("./systems/TokenContracts").TokenContracts; UniswapSystem: typeof import("./systems/UniswapSystem").UniswapSystem; }; };