import { type TAbiItem } from '../types/TAbi'; import { IBlockchainExplorer } from '../explorer/IBlockchainExplorer'; import { TAddress } from '../models/TAddress'; import { TPlatform } from '../models/TPlatform'; import { Web3Client } from '../clients/Web3Client'; import { TEth } from '../models/TEth'; export interface IGenerateOptions { platform: TPlatform; target?: 'js' | 'ts' | 'mjs' | 'cjs'; name: string; contractName?: string; defaultAddress?: TAddress; source: { abi?: string | TAddress | TAbiItem[]; code?: string; path?: string; }; flags?: { useHardhatForSolFiles?: boolean; }; output?: string; outputFileExt?: string; location?: string; /** * a) Slot to read the implementation address from * b) The implementation address * c) Method function to read the implementation address from */ implementation?: TEth.Hex | TEth.Address | string; /** ABI will be save alongside with TS classes */ saveAbi?: boolean; /** Sources will not be saved if FALSE */ saveSources?: boolean; } export declare class Generator { options: IGenerateOptions; explorer: IBlockchainExplorer; client: Web3Client; constructor(options: IGenerateOptions); static generateFromSol(path: string): Promise<{ main: string; sources: any[]; platform: string; address: `0x${string}`; implementation: `0x${string}`; contractName: string; }>; /** * @deprecated Was possible to generate the Contract Class based on the meta information header in TS file */ static generateForClass(path: string): Promise; generate(): Promise<{ main: string; sources: any[]; platform: string; address: `0x${string}`; implementation: `0x${string}`; contractName: string; }>; private getAbi; private getSources; private resolveSourcePath; private getContractData; private readFile; private getAbiByAddress; } export interface IGeneratorSources { contractName: string; files: { [path: string]: { content: string; }; }; }