import { StorageLayoutInfo } from '../validations/Storage'; import { Callback, EventLog, EventEmitter, TransactionReceipt } from 'web3/types'; import { Contract as Web3Contract, TransactionObject, BlockType } from 'web3-eth-contract'; export default interface Contract { options: any; methods: { [fnName: string]: (...args: any[]) => TransactionObject; }; deploy(options: { data: string; arguments: any[]; }): TransactionObject; events: { [eventName: string]: (options?: { filter?: object; fromBlock?: BlockType; topics?: string[]; }, cb?: Callback) => EventEmitter; allEvents: (options?: { filter?: object; fromBlock?: BlockType; topics?: string[]; }, cb?: Callback) => EventEmitter; }; getPastEvents(event: string, options?: { filter?: object; fromBlock?: BlockType; toBlock?: BlockType; topics?: string[]; }, cb?: Callback): Promise; setProvider(provider: any): void; address: string; new: (args?: any[], options?: {}) => Promise; at: (address: string) => Contract; link: (libraries: { [libAlias: string]: string; }) => void; deployment?: { transactionHash: string; transactionReceipt: TransactionReceipt; }; schema: { directory: string; linkedBytecode: string; linkedDeployedBytecode: string; warnings: any; storageInfo: StorageLayoutInfo; schemaVersion: string; contractName: string; abi: any[]; bytecode: string; deployedBytecode: string; sourceMap: string; deployedSourceMap: string; source: string; sourcePath: string; ast: any; legacyAST?: any; compiler: any; networks: any; updatedAt: string; }; } export declare enum ContractMethodMutability { Constant = 0, NotConstant = 1 } interface ContractMethod { name: string; hasInitializer: boolean; inputs: string[]; } export declare function createContract(schema: any): Contract; export declare function contractMethodsFromAbi(instance: Contract, constant?: ContractMethodMutability): any[]; export declare function contractMethodsFromAst(instance: Contract, constant?: ContractMethodMutability): ContractMethod[]; export {};