/// <reference types="node" />
import type BN from "bn.js";
import type { ContractOptions } from "web3-eth-contract";
import type { EventLog } from "web3-core";
import type { EventEmitter } from "events";
import type { Callback, PayableTransactionObject, NonPayableTransactionObject, BlockType, BaseContract } from "./types";
export interface EventOptions {
    filter?: object;
    fromBlock?: BlockType;
    topics?: string[];
}
export interface IDAOVault extends BaseContract {
    constructor(jsonInterface: any[], address?: string, options?: ContractOptions): IDAOVault;
    clone(): IDAOVault;
    methods: {
        deposit(tokenAddress_: string, amount_: number | string | BN): PayableTransactionObject<void>;
        depositNFT(tokenAddress_: string, tokenId_: number | string | BN): NonPayableTransactionObject<void>;
        getUserVotingPower(userAddress_: string, tokenAddress_: string): NonPayableTransactionObject<string>;
        lock(sender_: string, tokenAddress_: string, amount_: number | string | BN, timeToLock_: number | string | BN): NonPayableTransactionObject<void>;
        lockNFT(sender_: string, tokenAddress_: string, timeToLock_: number | string | BN): NonPayableTransactionObject<void>;
        withdraw(tokenAddress_: string, amount_: number | string | BN): NonPayableTransactionObject<void>;
        withdrawNFT(tokenAddress_: string, tokenId_: number | string | BN): NonPayableTransactionObject<void>;
    };
    events: {
        allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
    };
}
