import { AccessListItem, EthAddress } from './types'; declare type ParamTypes = Array>; declare type Args = Array; /** * Single action that can be executed directly, or combined into a set (ie. supply a vault) * * @category Base Classes */ export declare class Action { #private; contractAddress: EthAddress; paramTypes: ParamTypes; name: string; args: Args; mappableArgs: Args; /** * @param name * @param contractAddress * @param paramTypes * @param args */ constructor(name: string, contractAddress: EthAddress, paramTypes: ParamTypes, args: Args); /** * */ getId(): string; /** * */ _getArgumentMapping(): Args; _parseParamType(paramType: string | ParamTypes, arg: Args): string | any[]; /** * */ _replaceWithPlaceholders(arg: Args, paramType: string | ParamTypes): any; /** * */ _formatType(paramType: string | ParamTypes): string; /** * Encode arguments for calling the action directly * @returns bytes-encoded args * */ _encodeForCall(): Array; encodeForL2DsProxyCall(): string; encodeForL2Recipe(): string; /** * Encode arguments for calling the action via DsProxy * @returns `address` & `data` to be passed on to DSProxy's `execute(address _target, bytes memory _data)` */ encodeForDsProxyCall(): Array; /** * Encodes action for Recipe call */ encodeForRecipe(): Array; encodeForStrategy(subSlots: any): Array<(string | number[])>; /** * Assets requiring approval to be used by DsProxy * Approval is done from owner to DsProxy */ getAssetsToApprove(): Promise>; /** * ETH value to be sent with transaction * @returns ETH value in wei */ getEthValue(): Promise; /** * Access list for single action */ getAccessList(chainId: number): Array; } export {};