import { Planner as WeirollPlanner, Contract as WeirollContract } from '@weiroll/weiroll.js';
import { EvmCall } from '../common/index.js';
export { Contract as WeirollContract, Planner as WeirollPlanner } from '@weiroll/weiroll.js';
import { Contract as EthersContract } from '@ethersproject/contracts';
export declare enum WeirollCommandFlags {
    DELEGATECALL = 0,
    CALL = 1,
    STATICCALL = 2,
    CALL_WITH_VALUE = 3,
    CALLTYPE_MASK = 3,
    EXTENDED_COMMAND = 64,
    TUPLE_RETURN = 128
}
/**
 * Create a weiroll transaction
 *
 * @param addToPlanner - A function that adds the commands to the planner
 *
 * @returns An EVM call
 */
export declare function createWeirollDelegateCall(addToPlanner: (planner: WeirollPlanner) => void): EvmCall;
export declare function createWeirollContract(contract: EthersContract, commandflags?: WeirollCommandFlags): WeirollContract;
export declare function createWeirollLibrary(contract: EthersContract): WeirollContract;
