import { SourceUnit } from 'solidity-ast' ; export interface Deployer { provider : TruffleProvider ; deploy ( contract , ... args ) : Promise < ContractInstance > ; } export interface ContractClass { new ( address ) : ContractInstance ; 'new' ( ... args ) : ContractInstance ; deployed ( ) : Promise < ContractInstance > ; at ( address ) : Promise < ContractInstance > ; detectNetwork ( ) : void ; setProvider ( provider ) : void ; defaults ( defaults ) : void ; bytecode : string ; currentProvider : TruffleProvider ; class_defaults : ContractClassDefaults ; contractName : string ; address ? : string ; networks ? : { [ id ] : NetworkObject ; } ; } export interface NetworkObject { address ? : string ; transactionHash ? : string ; links : { [ libName ] : string ; } ; } export interface ContractClassDefaults { from : string ; gas : number ; gasPrice : number ; } export interface ContractInstance { address : string ; transactionHash ? : string ; contract : { methods : { [ name ] : ( ... args : unknown [ ] ) => { encodeABI ( ) : string ; } ; } ; } ; [ other ] : any ; } export interface TruffleArtifact { contractName : string ; sourcePath : string ; source : string ; bytecode : string ; ast ? : SourceUnit ; } type TruffleProviderResult = { result : any ; error : { message : string ; } ; } ; type TruffleProviderSend = ( args : { method : string ; params : unknown [ ] ; id : string ; jsonrpc : '2.0' ; } , callback : ( err : Error | null , value : TruffleProviderResult ) => void ) => void ; export type TruffleProvider = { send : TruffleProviderSend ; } | { sendAsync : TruffleProviderSend ; } ; export interface TruffleConfig { provider : TruffleProvider ; contracts_build_directory : string ; contracts_directory : string ; from : string ; gas : number ; gasPrice : number ; } declare const config ; export function getTruffleConfig ( ) { if ( typeof config === 'undefined' ) { throw new Error ( 'Global Truffle config not found: Truffle >=5.1.35 is required. Truffle exec not yet supported' ) ; } else { return config ; } } export function getTruffleDefaults ( ) { const { from , gas , gasPrice } = getTruffleConfig ( ) ; return { from , gas , gasPrice } ; } export function getTruffleProvider ( ) { return getTruffleConfig ( ) . provider ; } export const TruffleContract = require ( '@truffle/contract' ) as ( artifact : unknown ) => ContractClass ;