import { Action } from './Action'; import { AccessListItem, EthAddress, TxSaverData } from './types'; /** * Set of Actions to be performed sequentially in a single transaction * * @category Base Classes */ export declare class Recipe { #private; name: string; actions: Array; recipeExecutorAddress: string; extraGas: number; /** * @param name * @param actions */ constructor(name: string, actions?: Array); /** * @param action */ addAction(action: Action): Recipe; /** * Encode arguments for calling the action set via DsProxy * @returns `address` & `data` to be passed on to DSProxy's `execute(address _target, bytes memory _data)` */ encodeForDsProxyCall(): Array; /** * Finds all actions from recipe that have a swap. */ getSwapActions(): Action[]; private getTxSaverSupportedSwapActions; getTxSaverOrderData(): { fromAsset: string; toAsset: string; fromAmount: string; }; /** * Check if recipe can be encoded for taking fee from position in TxSaver tx * @returns boolean */ canEncodeForTxSaverCall(): boolean; /** * Encode arguments for calling tx saver functions inside recipe executor * @param data tx saver user signed data * @returns recipe executor addr and 'data' to be passed to Safe */ encodeForTxSaverCall(data: TxSaverData): Array; /** * Logs parameter mapping in verbose format for validation. Used for testing in development. */ _validateParamMappings(): void; /** * 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; /** * Generates an access list for the recipe */ getAccessList(): Array; }