import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../../../common";
export interface VotingEscrowInterface extends utils.Interface {
    functions: {
        "MAXTIME()": FunctionFragment;
        "MULTIPLIER()": FunctionFragment;
        "WEEK()": FunctionFragment;
        "balanceOf(address)": FunctionFragment;
        "balanceOfAt(address,uint256)": FunctionFragment;
        "blocklist()": FunctionFragment;
        "checkpoint()": FunctionFragment;
        "collectPenalty()": FunctionFragment;
        "createLock(uint256,uint256)": FunctionFragment;
        "decimals()": FunctionFragment;
        "delegate(address)": FunctionFragment;
        "forceUndelegate(address)": FunctionFragment;
        "getLastUserPoint(address)": FunctionFragment;
        "getPenaltyRate(uint256)": FunctionFragment;
        "globalEpoch()": FunctionFragment;
        "increaseAmount(uint256)": FunctionFragment;
        "increaseAmountFor(address,uint256)": FunctionFragment;
        "increaseUnlockTime(uint256)": FunctionFragment;
        "lockEnd(address)": FunctionFragment;
        "lockFor(address,uint256,uint256)": FunctionFragment;
        "locked(address)": FunctionFragment;
        "lockerWhitelist(address)": FunctionFragment;
        "maxPenalty()": FunctionFragment;
        "name()": FunctionFragment;
        "owner()": FunctionFragment;
        "penaltyAccumulated()": FunctionFragment;
        "penaltyRecipient()": FunctionFragment;
        "pointHistory(uint256)": FunctionFragment;
        "quitEnabled()": FunctionFragment;
        "quitLock()": FunctionFragment;
        "setQuitEnabled(bool)": FunctionFragment;
        "slopeChanges(uint256)": FunctionFragment;
        "supply()": FunctionFragment;
        "symbol()": FunctionFragment;
        "token()": FunctionFragment;
        "totalSupply()": FunctionFragment;
        "totalSupplyAt(uint256)": FunctionFragment;
        "transferOwnership(address)": FunctionFragment;
        "unlock()": FunctionFragment;
        "updateBlocklist(address)": FunctionFragment;
        "updateLockerWhitelist(address,bool)": FunctionFragment;
        "updatePenaltyRecipient(address)": FunctionFragment;
        "userPointEpoch(address)": FunctionFragment;
        "userPointHistory(address,uint256)": FunctionFragment;
        "withdraw()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "MAXTIME" | "MULTIPLIER" | "WEEK" | "balanceOf" | "balanceOfAt" | "blocklist" | "checkpoint" | "collectPenalty" | "createLock" | "decimals" | "delegate" | "forceUndelegate" | "getLastUserPoint" | "getPenaltyRate" | "globalEpoch" | "increaseAmount" | "increaseAmountFor" | "increaseUnlockTime" | "lockEnd" | "lockFor" | "locked" | "lockerWhitelist" | "maxPenalty" | "name" | "owner" | "penaltyAccumulated" | "penaltyRecipient" | "pointHistory" | "quitEnabled" | "quitLock" | "setQuitEnabled" | "slopeChanges" | "supply" | "symbol" | "token" | "totalSupply" | "totalSupplyAt" | "transferOwnership" | "unlock" | "updateBlocklist" | "updateLockerWhitelist" | "updatePenaltyRecipient" | "userPointEpoch" | "userPointHistory" | "withdraw"): FunctionFragment;
    encodeFunctionData(functionFragment: "MAXTIME", values?: undefined): string;
    encodeFunctionData(functionFragment: "MULTIPLIER", values?: undefined): string;
    encodeFunctionData(functionFragment: "WEEK", values?: undefined): string;
    encodeFunctionData(functionFragment: "balanceOf", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "balanceOfAt", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "blocklist", values?: undefined): string;
    encodeFunctionData(functionFragment: "checkpoint", values?: undefined): string;
    encodeFunctionData(functionFragment: "collectPenalty", values?: undefined): string;
    encodeFunctionData(functionFragment: "createLock", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
    encodeFunctionData(functionFragment: "delegate", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "forceUndelegate", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "getLastUserPoint", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "getPenaltyRate", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "globalEpoch", values?: undefined): string;
    encodeFunctionData(functionFragment: "increaseAmount", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "increaseAmountFor", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "increaseUnlockTime", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "lockEnd", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "lockFor", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "locked", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "lockerWhitelist", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "maxPenalty", values?: undefined): string;
    encodeFunctionData(functionFragment: "name", values?: undefined): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "penaltyAccumulated", values?: undefined): string;
    encodeFunctionData(functionFragment: "penaltyRecipient", values?: undefined): string;
    encodeFunctionData(functionFragment: "pointHistory", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "quitEnabled", values?: undefined): string;
    encodeFunctionData(functionFragment: "quitLock", values?: undefined): string;
    encodeFunctionData(functionFragment: "setQuitEnabled", values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: "slopeChanges", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "supply", values?: undefined): string;
    encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
    encodeFunctionData(functionFragment: "token", values?: undefined): string;
    encodeFunctionData(functionFragment: "totalSupply", values?: undefined): string;
    encodeFunctionData(functionFragment: "totalSupplyAt", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "unlock", values?: undefined): string;
    encodeFunctionData(functionFragment: "updateBlocklist", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "updateLockerWhitelist", values: [PromiseOrValue<string>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: "updatePenaltyRecipient", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "userPointEpoch", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "userPointHistory", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "withdraw", values?: undefined): string;
    decodeFunctionResult(functionFragment: "MAXTIME", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "MULTIPLIER", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "WEEK", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "balanceOfAt", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "blocklist", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "checkpoint", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "collectPenalty", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createLock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "delegate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "forceUndelegate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getLastUserPoint", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPenaltyRate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "globalEpoch", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "increaseAmount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "increaseAmountFor", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "increaseUnlockTime", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lockEnd", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lockFor", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "locked", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lockerWhitelist", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "maxPenalty", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "penaltyAccumulated", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "penaltyRecipient", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pointHistory", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "quitEnabled", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "quitLock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setQuitEnabled", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "slopeChanges", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "supply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "token", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalSupplyAt", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "unlock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateBlocklist", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateLockerWhitelist", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updatePenaltyRecipient", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "userPointEpoch", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "userPointHistory", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result;
    events: {
        "CollectPenalty(uint256,address)": EventFragment;
        "Deposit(address,uint256,uint256,uint8,uint256)": EventFragment;
        "QuitEnabled(bool)": EventFragment;
        "TransferOwnership(address)": EventFragment;
        "Unlock()": EventFragment;
        "UpdateBlocklist(address)": EventFragment;
        "UpdateLockerWhitelist(address,bool)": EventFragment;
        "UpdatePenaltyRecipient(address)": EventFragment;
        "Withdraw(address,uint256,uint8,uint256)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "CollectPenalty"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "QuitEnabled"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TransferOwnership"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Unlock"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UpdateBlocklist"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UpdateLockerWhitelist"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UpdatePenaltyRecipient"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment;
}
export interface CollectPenaltyEventObject {
    amount: BigNumber;
    recipient: string;
}
export type CollectPenaltyEvent = TypedEvent<[
    BigNumber,
    string
], CollectPenaltyEventObject>;
export type CollectPenaltyEventFilter = TypedEventFilter<CollectPenaltyEvent>;
export interface DepositEventObject {
    provider: string;
    value: BigNumber;
    locktime: BigNumber;
    action: number;
    ts: BigNumber;
}
export type DepositEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    number,
    BigNumber
], DepositEventObject>;
export type DepositEventFilter = TypedEventFilter<DepositEvent>;
export interface QuitEnabledEventObject {
    quitEnabled: boolean;
}
export type QuitEnabledEvent = TypedEvent<[boolean], QuitEnabledEventObject>;
export type QuitEnabledEventFilter = TypedEventFilter<QuitEnabledEvent>;
export interface TransferOwnershipEventObject {
    owner: string;
}
export type TransferOwnershipEvent = TypedEvent<[
    string
], TransferOwnershipEventObject>;
export type TransferOwnershipEventFilter = TypedEventFilter<TransferOwnershipEvent>;
export interface UnlockEventObject {
}
export type UnlockEvent = TypedEvent<[], UnlockEventObject>;
export type UnlockEventFilter = TypedEventFilter<UnlockEvent>;
export interface UpdateBlocklistEventObject {
    blocklist: string;
}
export type UpdateBlocklistEvent = TypedEvent<[
    string
], UpdateBlocklistEventObject>;
export type UpdateBlocklistEventFilter = TypedEventFilter<UpdateBlocklistEvent>;
export interface UpdateLockerWhitelistEventObject {
    addr: string;
    allowed: boolean;
}
export type UpdateLockerWhitelistEvent = TypedEvent<[
    string,
    boolean
], UpdateLockerWhitelistEventObject>;
export type UpdateLockerWhitelistEventFilter = TypedEventFilter<UpdateLockerWhitelistEvent>;
export interface UpdatePenaltyRecipientEventObject {
    recipient: string;
}
export type UpdatePenaltyRecipientEvent = TypedEvent<[
    string
], UpdatePenaltyRecipientEventObject>;
export type UpdatePenaltyRecipientEventFilter = TypedEventFilter<UpdatePenaltyRecipientEvent>;
export interface WithdrawEventObject {
    provider: string;
    value: BigNumber;
    action: number;
    ts: BigNumber;
}
export type WithdrawEvent = TypedEvent<[
    string,
    BigNumber,
    number,
    BigNumber
], WithdrawEventObject>;
export type WithdrawEventFilter = TypedEventFilter<WithdrawEvent>;
export interface VotingEscrow extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: VotingEscrowInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        MAXTIME(overrides?: CallOverrides): Promise<[BigNumber]>;
        MULTIPLIER(overrides?: CallOverrides): Promise<[BigNumber]>;
        WEEK(overrides?: CallOverrides): Promise<[BigNumber]>;
        balanceOf(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        balanceOfAt(_owner: PromiseOrValue<string>, _blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        blocklist(overrides?: CallOverrides): Promise<[string]>;
        checkpoint(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        collectPenalty(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        createLock(_value: PromiseOrValue<BigNumberish>, _unlockTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        decimals(overrides?: CallOverrides): Promise<[BigNumber]>;
        delegate(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        forceUndelegate(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getLastUserPoint(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            bias: BigNumber;
            slope: BigNumber;
            ts: BigNumber;
        }>;
        getPenaltyRate(end: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        globalEpoch(overrides?: CallOverrides): Promise<[BigNumber]>;
        increaseAmount(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        increaseAmountFor(account: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        increaseUnlockTime(_unlockTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        lockEnd(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        lockFor(_account: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _unlockTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        locked(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            string
        ] & {
            amount: BigNumber;
            delegated: BigNumber;
            end: BigNumber;
            delegatee: string;
        }>;
        lockerWhitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        maxPenalty(overrides?: CallOverrides): Promise<[BigNumber]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        penaltyAccumulated(overrides?: CallOverrides): Promise<[BigNumber]>;
        penaltyRecipient(overrides?: CallOverrides): Promise<[string]>;
        pointHistory(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            bias: BigNumber;
            slope: BigNumber;
            ts: BigNumber;
            blk: BigNumber;
        }>;
        quitEnabled(overrides?: CallOverrides): Promise<[boolean]>;
        quitLock(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setQuitEnabled(_quitEnabled: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        slopeChanges(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        supply(overrides?: CallOverrides): Promise<[BigNumber]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        token(overrides?: CallOverrides): Promise<[string]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalSupplyAt(_blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        transferOwnership(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unlock(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateBlocklist(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateLockerWhitelist(_addr: PromiseOrValue<string>, allowed: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updatePenaltyRecipient(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        userPointEpoch(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        userPointHistory(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            bias: BigNumber;
            slope: BigNumber;
            ts: BigNumber;
            blk: BigNumber;
        }>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    MAXTIME(overrides?: CallOverrides): Promise<BigNumber>;
    MULTIPLIER(overrides?: CallOverrides): Promise<BigNumber>;
    WEEK(overrides?: CallOverrides): Promise<BigNumber>;
    balanceOf(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    balanceOfAt(_owner: PromiseOrValue<string>, _blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    blocklist(overrides?: CallOverrides): Promise<string>;
    checkpoint(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    collectPenalty(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    createLock(_value: PromiseOrValue<BigNumberish>, _unlockTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    decimals(overrides?: CallOverrides): Promise<BigNumber>;
    delegate(_addr: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    forceUndelegate(_addr: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getLastUserPoint(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        bias: BigNumber;
        slope: BigNumber;
        ts: BigNumber;
    }>;
    getPenaltyRate(end: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    globalEpoch(overrides?: CallOverrides): Promise<BigNumber>;
    increaseAmount(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    increaseAmountFor(account: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    increaseUnlockTime(_unlockTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    lockEnd(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    lockFor(_account: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _unlockTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    locked(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        string
    ] & {
        amount: BigNumber;
        delegated: BigNumber;
        end: BigNumber;
        delegatee: string;
    }>;
    lockerWhitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    maxPenalty(overrides?: CallOverrides): Promise<BigNumber>;
    name(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    penaltyAccumulated(overrides?: CallOverrides): Promise<BigNumber>;
    penaltyRecipient(overrides?: CallOverrides): Promise<string>;
    pointHistory(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        bias: BigNumber;
        slope: BigNumber;
        ts: BigNumber;
        blk: BigNumber;
    }>;
    quitEnabled(overrides?: CallOverrides): Promise<boolean>;
    quitLock(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setQuitEnabled(_quitEnabled: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    slopeChanges(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    supply(overrides?: CallOverrides): Promise<BigNumber>;
    symbol(overrides?: CallOverrides): Promise<string>;
    token(overrides?: CallOverrides): Promise<string>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    totalSupplyAt(_blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnership(_addr: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unlock(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateBlocklist(_addr: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateLockerWhitelist(_addr: PromiseOrValue<string>, allowed: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updatePenaltyRecipient(_addr: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    userPointEpoch(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    userPointHistory(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        bias: BigNumber;
        slope: BigNumber;
        ts: BigNumber;
        blk: BigNumber;
    }>;
    withdraw(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        MAXTIME(overrides?: CallOverrides): Promise<BigNumber>;
        MULTIPLIER(overrides?: CallOverrides): Promise<BigNumber>;
        WEEK(overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        balanceOfAt(_owner: PromiseOrValue<string>, _blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        blocklist(overrides?: CallOverrides): Promise<string>;
        checkpoint(overrides?: CallOverrides): Promise<void>;
        collectPenalty(overrides?: CallOverrides): Promise<void>;
        createLock(_value: PromiseOrValue<BigNumberish>, _unlockTime: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        delegate(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        forceUndelegate(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        getLastUserPoint(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            bias: BigNumber;
            slope: BigNumber;
            ts: BigNumber;
        }>;
        getPenaltyRate(end: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        globalEpoch(overrides?: CallOverrides): Promise<BigNumber>;
        increaseAmount(_value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        increaseAmountFor(account: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        increaseUnlockTime(_unlockTime: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        lockEnd(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lockFor(_account: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _unlockTime: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        locked(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            string
        ] & {
            amount: BigNumber;
            delegated: BigNumber;
            end: BigNumber;
            delegatee: string;
        }>;
        lockerWhitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        maxPenalty(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        penaltyAccumulated(overrides?: CallOverrides): Promise<BigNumber>;
        penaltyRecipient(overrides?: CallOverrides): Promise<string>;
        pointHistory(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            bias: BigNumber;
            slope: BigNumber;
            ts: BigNumber;
            blk: BigNumber;
        }>;
        quitEnabled(overrides?: CallOverrides): Promise<boolean>;
        quitLock(overrides?: CallOverrides): Promise<void>;
        setQuitEnabled(_quitEnabled: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        slopeChanges(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        supply(overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<string>;
        token(overrides?: CallOverrides): Promise<string>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupplyAt(_blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        unlock(overrides?: CallOverrides): Promise<void>;
        updateBlocklist(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        updateLockerWhitelist(_addr: PromiseOrValue<string>, allowed: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        updatePenaltyRecipient(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        userPointEpoch(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        userPointHistory(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            bias: BigNumber;
            slope: BigNumber;
            ts: BigNumber;
            blk: BigNumber;
        }>;
        withdraw(overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        "CollectPenalty(uint256,address)"(amount?: null, recipient?: PromiseOrValue<string> | null): CollectPenaltyEventFilter;
        CollectPenalty(amount?: null, recipient?: PromiseOrValue<string> | null): CollectPenaltyEventFilter;
        "Deposit(address,uint256,uint256,uint8,uint256)"(provider?: PromiseOrValue<string> | null, value?: null, locktime?: null, action?: PromiseOrValue<BigNumberish> | null, ts?: null): DepositEventFilter;
        Deposit(provider?: PromiseOrValue<string> | null, value?: null, locktime?: null, action?: PromiseOrValue<BigNumberish> | null, ts?: null): DepositEventFilter;
        "QuitEnabled(bool)"(quitEnabled?: null): QuitEnabledEventFilter;
        QuitEnabled(quitEnabled?: null): QuitEnabledEventFilter;
        "TransferOwnership(address)"(owner?: PromiseOrValue<string> | null): TransferOwnershipEventFilter;
        TransferOwnership(owner?: PromiseOrValue<string> | null): TransferOwnershipEventFilter;
        "Unlock()"(): UnlockEventFilter;
        Unlock(): UnlockEventFilter;
        "UpdateBlocklist(address)"(blocklist?: PromiseOrValue<string> | null): UpdateBlocklistEventFilter;
        UpdateBlocklist(blocklist?: PromiseOrValue<string> | null): UpdateBlocklistEventFilter;
        "UpdateLockerWhitelist(address,bool)"(addr?: PromiseOrValue<string> | null, allowed?: null): UpdateLockerWhitelistEventFilter;
        UpdateLockerWhitelist(addr?: PromiseOrValue<string> | null, allowed?: null): UpdateLockerWhitelistEventFilter;
        "UpdatePenaltyRecipient(address)"(recipient?: PromiseOrValue<string> | null): UpdatePenaltyRecipientEventFilter;
        UpdatePenaltyRecipient(recipient?: PromiseOrValue<string> | null): UpdatePenaltyRecipientEventFilter;
        "Withdraw(address,uint256,uint8,uint256)"(provider?: PromiseOrValue<string> | null, value?: null, action?: PromiseOrValue<BigNumberish> | null, ts?: null): WithdrawEventFilter;
        Withdraw(provider?: PromiseOrValue<string> | null, value?: null, action?: PromiseOrValue<BigNumberish> | null, ts?: null): WithdrawEventFilter;
    };
    estimateGas: {
        MAXTIME(overrides?: CallOverrides): Promise<BigNumber>;
        MULTIPLIER(overrides?: CallOverrides): Promise<BigNumber>;
        WEEK(overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        balanceOfAt(_owner: PromiseOrValue<string>, _blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        blocklist(overrides?: CallOverrides): Promise<BigNumber>;
        checkpoint(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        collectPenalty(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        createLock(_value: PromiseOrValue<BigNumberish>, _unlockTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        delegate(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        forceUndelegate(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getLastUserPoint(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getPenaltyRate(end: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        globalEpoch(overrides?: CallOverrides): Promise<BigNumber>;
        increaseAmount(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        increaseAmountFor(account: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        increaseUnlockTime(_unlockTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        lockEnd(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lockFor(_account: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _unlockTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        locked(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lockerWhitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxPenalty(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        penaltyAccumulated(overrides?: CallOverrides): Promise<BigNumber>;
        penaltyRecipient(overrides?: CallOverrides): Promise<BigNumber>;
        pointHistory(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        quitEnabled(overrides?: CallOverrides): Promise<BigNumber>;
        quitLock(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setQuitEnabled(_quitEnabled: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        slopeChanges(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        supply(overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        token(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupplyAt(_blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unlock(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateBlocklist(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateLockerWhitelist(_addr: PromiseOrValue<string>, allowed: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updatePenaltyRecipient(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        userPointEpoch(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        userPointHistory(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        MAXTIME(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MULTIPLIER(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        WEEK(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOf(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOfAt(_owner: PromiseOrValue<string>, _blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        blocklist(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        checkpoint(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        collectPenalty(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        createLock(_value: PromiseOrValue<BigNumberish>, _unlockTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        delegate(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        forceUndelegate(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getLastUserPoint(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPenaltyRate(end: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        globalEpoch(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increaseAmount(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        increaseAmountFor(account: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        increaseUnlockTime(_unlockTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        lockEnd(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lockFor(_account: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, _unlockTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        locked(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lockerWhitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxPenalty(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        penaltyAccumulated(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        penaltyRecipient(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pointHistory(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        quitEnabled(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        quitLock(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setQuitEnabled(_quitEnabled: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        slopeChanges(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        supply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        token(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupplyAt(_blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unlock(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateBlocklist(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateLockerWhitelist(_addr: PromiseOrValue<string>, allowed: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updatePenaltyRecipient(_addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        userPointEpoch(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        userPointHistory(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
