import { ITemplateFields } from "../create/templateProcessor";
import { ContractLocator } from "../commands/create";
export default class ABIToScript {
    private dir;
    private tokenAddress;
    private xmlDoc?;
    private contractsFromEvents;
    private domParser;
    constructor(dir: string, tokenAddress: ContractLocator);
    initFromHardHat(hardHat: string, contractABIs: string[]): Promise<void>;
    convertABI(abi: any): any;
    start(abi: any, contractName: string): Promise<void>;
    /**
     * Used for adding additional cards to an existing tokenscript; can handle external contracts
     *
     * @param abi ABI of contract we are pulling functions from
     * @param tokenAddress Pointer to contract (or existing contract)
     */
    startUpdate(abi: any): Promise<void>;
    private addContractToTokenScript;
    private selectAttrsForCard;
    getABIFetchOption(templateDef: ITemplateFields[], values: any[]): boolean;
    private pickElementsToGenerate;
    private getAttributeFunctions;
    private setValuesFromABI;
    private postParse;
    private handleFunction;
    private appendToTS;
    private getEvent;
    private addEventContractObj;
    private getEventParams;
    private getDocument;
    private getEventContractObject;
    private parseFunctionToViewCard;
    private createCardFile;
    private infoCard;
    private getModuleBlock;
    private getJSBlock;
    private formatAttribute;
    private getAttribute;
    private getData;
    private parseInputName;
    private processTemplateCard;
    private initCard;
    /**
     * Find all Attribute and Card names, and contracts in the TokenScript
     *
     * @returns array of contracts, card and attribute names
     */
    private readTokenScriptDetails;
    private removeListOverlap;
    private parseCardNames;
    private parseAttribute;
    private parseContract;
    private parseOrigin;
    private fillCardDetails;
    private capitaliseFirstChar;
    private findExistingContract;
    private checkValidity;
    private getAS;
    private getFirstOutputType;
    private getSyntax;
    private lookupSyntax;
    private getOutputSyntax;
    private formInputBox;
    private isOnGenerationList;
    getABI(token: ContractLocator): Promise<any>;
    private getAPIValues;
    getLogicAddress(token: ContractLocator): Promise<string>;
    private finaliseLogicAddress;
    private delay;
    setupAPIRoutes(): void;
}
