import { TwoStepEthTransaction } from "../../types"; import { EthAddress, TxHash } from "@joincivil/typescript-types"; import { EthApi } from "@joincivil/ethapi"; import { Contract } from "../interfaces/contract"; import { Multisig } from "./multisig"; /** * Proxies functionionality to a contract instance via multisig wallet. Also supports instantiation *without* multisig proxy, in which case calls are passed directly to the contract. If the wrapped contract has an `owner` property, it will be checked to see if the owner is a multisig wallet. */ export declare class BaseMultisigProxy { protected ethApi: EthApi; protected multisig?: Multisig; protected instance: Contract; protected constructor(ethApi: EthApi, instance: Contract); readonly multisigEnabled: boolean; requireMultisig(): Multisig; owners(): Promise; isOwner(address: EthAddress): Promise; getMultisigAddress(): Promise; isAddressMultisigWallet(address: EthAddress): Promise; /** * Instantiate `this.multisig` if appropriate. * @param multisigAddress (optional) If supplied, instantiate multisig from that, otherwise instance contract will be checked for multisig owner, and if none found, `this.multisig` remains undefined */ protected resolveMultisig(multisigAddress?: EthAddress): Promise; protected createProxyTransaction(txHash: TxHash): MultisigProxyTransaction; } export interface MultisigProxyTransaction extends TwoStepEthTransaction { readonly isProxied?: true; proxiedId?(): Promise; }