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 StargateVeInterface extends utils.Interface {
    functions: {
        'MAXTIME()': FunctionFragment;
        'MINTIME()': FunctionFragment;
        'add_to_whitelist(address)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'balanceOfAt(address,uint256)': FunctionFragment;
        'balanceOfAtT(address,uint256)': FunctionFragment;
        'changeController(address)': FunctionFragment;
        'checkpoint()': FunctionFragment;
        'contracts_whitelist(address)': FunctionFragment;
        'controller()': FunctionFragment;
        'create_lock(uint256,uint256)': FunctionFragment;
        'decimals()': FunctionFragment;
        'deposit_for(address,uint256)': FunctionFragment;
        'epoch()': FunctionFragment;
        'get_last_user_slope(address)': FunctionFragment;
        'increase_amount(uint256)': FunctionFragment;
        'increase_amount_and_time(uint256,uint256)': FunctionFragment;
        'increase_unlock_time(uint256)': FunctionFragment;
        'locked(address)': FunctionFragment;
        'locked__end(address)': FunctionFragment;
        'name()': FunctionFragment;
        'owner()': FunctionFragment;
        'point_history(uint256)': FunctionFragment;
        'remove_from_whitelist(address)': FunctionFragment;
        'renounceOwnership()': FunctionFragment;
        'slope_changes(uint256)': FunctionFragment;
        'supply()': FunctionFragment;
        'symbol()': FunctionFragment;
        'token()': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'totalSupplyAt(uint256)': FunctionFragment;
        'totalSupplyAtT(uint256)': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'transfersEnabled()': FunctionFragment;
        'unlock()': FunctionFragment;
        'unlocked()': FunctionFragment;
        'user_point_epoch(address)': FunctionFragment;
        'user_point_history(address,uint256)': FunctionFragment;
        'user_point_history__ts(address,uint256)': FunctionFragment;
        'version()': FunctionFragment;
        'withdraw()': FunctionFragment;
        'withdraw_and_create_lock(uint256,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'MAXTIME' | 'MINTIME' | 'add_to_whitelist' | 'balanceOf' | 'balanceOfAt' | 'balanceOfAtT' | 'changeController' | 'checkpoint' | 'contracts_whitelist' | 'controller' | 'create_lock' | 'decimals' | 'deposit_for' | 'epoch' | 'get_last_user_slope' | 'increase_amount' | 'increase_amount_and_time' | 'increase_unlock_time' | 'locked' | 'locked__end' | 'name' | 'owner' | 'point_history' | 'remove_from_whitelist' | 'renounceOwnership' | 'slope_changes' | 'supply' | 'symbol' | 'token' | 'totalSupply' | 'totalSupplyAt' | 'totalSupplyAtT' | 'transferOwnership' | 'transfersEnabled' | 'unlock' | 'unlocked' | 'user_point_epoch' | 'user_point_history' | 'user_point_history__ts' | 'version' | 'withdraw' | 'withdraw_and_create_lock'): FunctionFragment;
    encodeFunctionData(functionFragment: 'MAXTIME', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MINTIME', values?: undefined): string;
    encodeFunctionData(functionFragment: 'add_to_whitelist', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'balanceOfAt', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'balanceOfAtT', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'changeController', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'checkpoint', values?: undefined): string;
    encodeFunctionData(functionFragment: 'contracts_whitelist', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'controller', values?: undefined): string;
    encodeFunctionData(functionFragment: 'create_lock', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'deposit_for', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'epoch', values?: undefined): string;
    encodeFunctionData(functionFragment: 'get_last_user_slope', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'increase_amount', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'increase_amount_and_time', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'increase_unlock_time', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'locked', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'locked__end', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'point_history', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'remove_from_whitelist', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'slope_changes', 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: 'totalSupplyAtT', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'transfersEnabled', values?: undefined): string;
    encodeFunctionData(functionFragment: 'unlock', values?: undefined): string;
    encodeFunctionData(functionFragment: 'unlocked', values?: undefined): string;
    encodeFunctionData(functionFragment: 'user_point_epoch', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'user_point_history', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'user_point_history__ts', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'version', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdraw', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdraw_and_create_lock', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'MAXTIME', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MINTIME', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'add_to_whitelist', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOfAt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOfAtT', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'changeController', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'checkpoint', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'contracts_whitelist', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'controller', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'create_lock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit_for', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'epoch', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_last_user_slope', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increase_amount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increase_amount_and_time', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'increase_unlock_time', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'locked', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'locked__end', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'point_history', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'remove_from_whitelist', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'slope_changes', 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: 'totalSupplyAtT', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfersEnabled', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unlocked', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'user_point_epoch', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'user_point_history', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'user_point_history__ts', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'version', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw_and_create_lock', data: BytesLike): Result;
    events: {
        'Deposit(address,uint256,uint256,uint8,uint256)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'Supply(uint256,uint256)': EventFragment;
        'Withdraw(address,uint256,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Deposit'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Supply'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdraw'): EventFragment;
}
export interface DepositEventObject {
    provider: string;
    value: BigNumber;
    locktime: BigNumber;
    deposit_type: number;
    ts: BigNumber;
}
export declare type DepositEvent = TypedEvent<[string, BigNumber, BigNumber, number, BigNumber], DepositEventObject>;
export declare type DepositEventFilter = TypedEventFilter<DepositEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[string, string], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface SupplyEventObject {
    prevSupply: BigNumber;
    supply: BigNumber;
}
export declare type SupplyEvent = TypedEvent<[BigNumber, BigNumber], SupplyEventObject>;
export declare type SupplyEventFilter = TypedEventFilter<SupplyEvent>;
export interface WithdrawEventObject {
    provider: string;
    value: BigNumber;
    ts: BigNumber;
}
export declare type WithdrawEvent = TypedEvent<[string, BigNumber, BigNumber], WithdrawEventObject>;
export declare type WithdrawEventFilter = TypedEventFilter<WithdrawEvent>;
export interface StargateVe extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: StargateVeInterface;
    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]>;
        MINTIME(overrides?: CallOverrides): Promise<[BigNumber]>;
        add_to_whitelist(addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        balanceOf(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        balanceOfAt(addr: PromiseOrValue<string>, _block: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        balanceOfAtT(addr: PromiseOrValue<string>, _t: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        changeController(_newController: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        checkpoint(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        contracts_whitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        controller(overrides?: CallOverrides): Promise<[string]>;
        create_lock(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        deposit_for(_addr: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        epoch(overrides?: CallOverrides): Promise<[BigNumber]>;
        get_last_user_slope(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        increase_amount(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        increase_amount_and_time(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        increase_unlock_time(_unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        locked(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            amount: BigNumber;
            end: BigNumber;
        }>;
        locked__end(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        point_history(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            bias: BigNumber;
            slope: BigNumber;
            ts: BigNumber;
            blk: BigNumber;
        }>;
        remove_from_whitelist(addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        slope_changes(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(_block: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        totalSupplyAtT(t: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transfersEnabled(overrides?: CallOverrides): Promise<[boolean]>;
        unlock(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unlocked(overrides?: CallOverrides): Promise<[boolean]>;
        user_point_epoch(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        user_point_history(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            bias: BigNumber;
            slope: BigNumber;
            ts: BigNumber;
            blk: BigNumber;
        }>;
        user_point_history__ts(_addr: PromiseOrValue<string>, _idx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        version(overrides?: CallOverrides): Promise<[string]>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdraw_and_create_lock(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    MAXTIME(overrides?: CallOverrides): Promise<BigNumber>;
    MINTIME(overrides?: CallOverrides): Promise<BigNumber>;
    add_to_whitelist(addr: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    balanceOf(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    balanceOfAt(addr: PromiseOrValue<string>, _block: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    balanceOfAtT(addr: PromiseOrValue<string>, _t: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    changeController(_newController: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    checkpoint(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    contracts_whitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    controller(overrides?: CallOverrides): Promise<string>;
    create_lock(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    decimals(overrides?: CallOverrides): Promise<number>;
    deposit_for(_addr: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    epoch(overrides?: CallOverrides): Promise<BigNumber>;
    get_last_user_slope(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    increase_amount(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    increase_amount_and_time(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    increase_unlock_time(_unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    locked(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        amount: BigNumber;
        end: BigNumber;
    }>;
    locked__end(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    name(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    point_history(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        bias: BigNumber;
        slope: BigNumber;
        ts: BigNumber;
        blk: BigNumber;
    }>;
    remove_from_whitelist(addr: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    slope_changes(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(_block: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    totalSupplyAtT(t: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transfersEnabled(overrides?: CallOverrides): Promise<boolean>;
    unlock(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unlocked(overrides?: CallOverrides): Promise<boolean>;
    user_point_epoch(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    user_point_history(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        bias: BigNumber;
        slope: BigNumber;
        ts: BigNumber;
        blk: BigNumber;
    }>;
    user_point_history__ts(_addr: PromiseOrValue<string>, _idx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    version(overrides?: CallOverrides): Promise<string>;
    withdraw(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdraw_and_create_lock(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        MAXTIME(overrides?: CallOverrides): Promise<BigNumber>;
        MINTIME(overrides?: CallOverrides): Promise<BigNumber>;
        add_to_whitelist(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        balanceOf(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        balanceOfAt(addr: PromiseOrValue<string>, _block: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        balanceOfAtT(addr: PromiseOrValue<string>, _t: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        changeController(_newController: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        checkpoint(overrides?: CallOverrides): Promise<void>;
        contracts_whitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        controller(overrides?: CallOverrides): Promise<string>;
        create_lock(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        decimals(overrides?: CallOverrides): Promise<number>;
        deposit_for(_addr: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        epoch(overrides?: CallOverrides): Promise<BigNumber>;
        get_last_user_slope(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        increase_amount(_value: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        increase_amount_and_time(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        increase_unlock_time(_unlock_time: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        locked(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            amount: BigNumber;
            end: BigNumber;
        }>;
        locked__end(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        point_history(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            bias: BigNumber;
            slope: BigNumber;
            ts: BigNumber;
            blk: BigNumber;
        }>;
        remove_from_whitelist(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        slope_changes(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(_block: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupplyAtT(t: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        transfersEnabled(overrides?: CallOverrides): Promise<boolean>;
        unlock(overrides?: CallOverrides): Promise<void>;
        unlocked(overrides?: CallOverrides): Promise<boolean>;
        user_point_epoch(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        user_point_history(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            bias: BigNumber;
            slope: BigNumber;
            ts: BigNumber;
            blk: BigNumber;
        }>;
        user_point_history__ts(_addr: PromiseOrValue<string>, _idx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        version(overrides?: CallOverrides): Promise<string>;
        withdraw(overrides?: CallOverrides): Promise<void>;
        withdraw_and_create_lock(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'Deposit(address,uint256,uint256,uint8,uint256)'(provider?: PromiseOrValue<string> | null, value?: null, locktime?: PromiseOrValue<BigNumberish> | null, deposit_type?: null, ts?: null): DepositEventFilter;
        Deposit(provider?: PromiseOrValue<string> | null, value?: null, locktime?: PromiseOrValue<BigNumberish> | null, deposit_type?: null, ts?: null): DepositEventFilter;
        'OwnershipTransferred(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        'Supply(uint256,uint256)'(prevSupply?: null, supply?: null): SupplyEventFilter;
        Supply(prevSupply?: null, supply?: null): SupplyEventFilter;
        'Withdraw(address,uint256,uint256)'(provider?: PromiseOrValue<string> | null, value?: null, ts?: null): WithdrawEventFilter;
        Withdraw(provider?: PromiseOrValue<string> | null, value?: null, ts?: null): WithdrawEventFilter;
    };
    estimateGas: {
        MAXTIME(overrides?: CallOverrides): Promise<BigNumber>;
        MINTIME(overrides?: CallOverrides): Promise<BigNumber>;
        add_to_whitelist(addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        balanceOf(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        balanceOfAt(addr: PromiseOrValue<string>, _block: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        balanceOfAtT(addr: PromiseOrValue<string>, _t: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        changeController(_newController: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        checkpoint(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        contracts_whitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        controller(overrides?: CallOverrides): Promise<BigNumber>;
        create_lock(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        deposit_for(_addr: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        epoch(overrides?: CallOverrides): Promise<BigNumber>;
        get_last_user_slope(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        increase_amount(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        increase_amount_and_time(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        increase_unlock_time(_unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        locked(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        locked__end(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        point_history(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        remove_from_whitelist(addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        slope_changes(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(_block: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupplyAtT(t: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transfersEnabled(overrides?: CallOverrides): Promise<BigNumber>;
        unlock(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unlocked(overrides?: CallOverrides): Promise<BigNumber>;
        user_point_epoch(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        user_point_history(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        user_point_history__ts(_addr: PromiseOrValue<string>, _idx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        version(overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdraw_and_create_lock(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        MAXTIME(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MINTIME(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        add_to_whitelist(addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        balanceOf(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOfAt(addr: PromiseOrValue<string>, _block: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOfAtT(addr: PromiseOrValue<string>, _t: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        changeController(_newController: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        checkpoint(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        contracts_whitelist(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        controller(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        create_lock(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deposit_for(_addr: PromiseOrValue<string>, _value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        epoch(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_last_user_slope(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        increase_amount(_value: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        increase_amount_and_time(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        increase_unlock_time(_unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        locked(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        locked__end(_addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        point_history(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        remove_from_whitelist(addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        slope_changes(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(_block: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupplyAtT(t: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transfersEnabled(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        unlock(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unlocked(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        user_point_epoch(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        user_point_history(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        user_point_history__ts(_addr: PromiseOrValue<string>, _idx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        version(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdraw_and_create_lock(_value: PromiseOrValue<BigNumberish>, _unlock_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
