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 CurvePoolLegacyInterface extends utils.Interface {
    functions: {
        'get_virtual_price()': FunctionFragment;
        'calc_token_amount(uint256[4],bool)': FunctionFragment;
        'add_liquidity(uint256[4],uint256)': FunctionFragment;
        'get_dy(int128,int128,uint256)': FunctionFragment;
        'get_dx(int128,int128,uint256)': FunctionFragment;
        'get_dy_underlying(int128,int128,uint256)': FunctionFragment;
        'get_dx_underlying(int128,int128,uint256)': FunctionFragment;
        'exchange(int128,int128,uint256,uint256)': FunctionFragment;
        'exchange_underlying(int128,int128,uint256,uint256)': FunctionFragment;
        'remove_liquidity(uint256,uint256[4])': FunctionFragment;
        'remove_liquidity_imbalance(uint256[4],uint256)': FunctionFragment;
        'commit_new_parameters(uint256,uint256,uint256)': FunctionFragment;
        'apply_new_parameters()': FunctionFragment;
        'revert_new_parameters()': FunctionFragment;
        'commit_transfer_ownership(address)': FunctionFragment;
        'apply_transfer_ownership()': FunctionFragment;
        'revert_transfer_ownership()': FunctionFragment;
        'withdraw_admin_fees()': FunctionFragment;
        'kill_me()': FunctionFragment;
        'unkill_me()': FunctionFragment;
        'coins(int128)': FunctionFragment;
        'underlying_coins(int128)': FunctionFragment;
        'balances(int128)': FunctionFragment;
        'A()': FunctionFragment;
        'fee()': FunctionFragment;
        'admin_fee()': FunctionFragment;
        'owner()': FunctionFragment;
        'admin_actions_deadline()': FunctionFragment;
        'transfer_ownership_deadline()': FunctionFragment;
        'future_A()': FunctionFragment;
        'future_fee()': FunctionFragment;
        'future_admin_fee()': FunctionFragment;
        'future_owner()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'get_virtual_price' | 'calc_token_amount' | 'add_liquidity' | 'get_dy' | 'get_dx' | 'get_dy_underlying' | 'get_dx_underlying' | 'exchange' | 'exchange_underlying' | 'remove_liquidity' | 'remove_liquidity_imbalance' | 'commit_new_parameters' | 'apply_new_parameters' | 'revert_new_parameters' | 'commit_transfer_ownership' | 'apply_transfer_ownership' | 'revert_transfer_ownership' | 'withdraw_admin_fees' | 'kill_me' | 'unkill_me' | 'coins' | 'underlying_coins' | 'balances' | 'A' | 'fee' | 'admin_fee' | 'owner' | 'admin_actions_deadline' | 'transfer_ownership_deadline' | 'future_A' | 'future_fee' | 'future_admin_fee' | 'future_owner'): FunctionFragment;
    encodeFunctionData(functionFragment: 'get_virtual_price', values?: undefined): string;
    encodeFunctionData(functionFragment: 'calc_token_amount', values: [
        [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ],
        PromiseOrValue<boolean>
    ]): string;
    encodeFunctionData(functionFragment: 'add_liquidity', values: [
        [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'get_dy', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'get_dx', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'get_dy_underlying', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'get_dx_underlying', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'exchange', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'exchange_underlying', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'remove_liquidity', values: [
        PromiseOrValue<BigNumberish>,
        [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ]
    ]): string;
    encodeFunctionData(functionFragment: 'remove_liquidity_imbalance', values: [
        [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'commit_new_parameters', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'apply_new_parameters', values?: undefined): string;
    encodeFunctionData(functionFragment: 'revert_new_parameters', values?: undefined): string;
    encodeFunctionData(functionFragment: 'commit_transfer_ownership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'apply_transfer_ownership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'revert_transfer_ownership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdraw_admin_fees', values?: undefined): string;
    encodeFunctionData(functionFragment: 'kill_me', values?: undefined): string;
    encodeFunctionData(functionFragment: 'unkill_me', values?: undefined): string;
    encodeFunctionData(functionFragment: 'coins', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'underlying_coins', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'balances', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'A', values?: undefined): string;
    encodeFunctionData(functionFragment: 'fee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'admin_fee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'admin_actions_deadline', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transfer_ownership_deadline', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_A', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_fee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_admin_fee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_owner', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'get_virtual_price', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'calc_token_amount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'add_liquidity', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_dy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_dx', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_dy_underlying', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_dx_underlying', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'exchange', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'exchange_underlying', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'remove_liquidity', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'remove_liquidity_imbalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'commit_new_parameters', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'apply_new_parameters', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revert_new_parameters', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'commit_transfer_ownership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'apply_transfer_ownership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revert_transfer_ownership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw_admin_fees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'kill_me', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unkill_me', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'coins', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'underlying_coins', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balances', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'A', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'admin_fee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'admin_actions_deadline', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfer_ownership_deadline', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_A', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_fee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_admin_fee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_owner', data: BytesLike): Result;
    events: {
        'TokenExchange(address,int128,uint256,int128,uint256)': EventFragment;
        'TokenExchangeUnderlying(address,int128,uint256,int128,uint256)': EventFragment;
        'AddLiquidity(address,uint256[4],uint256[4],uint256,uint256)': EventFragment;
        'RemoveLiquidity(address,uint256[4],uint256[4],uint256)': EventFragment;
        'RemoveLiquidityImbalance(address,uint256[4],uint256[4],uint256,uint256)': EventFragment;
        'CommitNewAdmin(uint256,address)': EventFragment;
        'NewAdmin(address)': EventFragment;
        'CommitNewParameters(uint256,uint256,uint256,uint256)': EventFragment;
        'NewParameters(uint256,uint256,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'TokenExchange'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TokenExchangeUnderlying'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AddLiquidity'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RemoveLiquidity'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RemoveLiquidityImbalance'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CommitNewAdmin'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NewAdmin'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CommitNewParameters'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NewParameters'): EventFragment;
}
export interface TokenExchangeEventObject {
    buyer: string;
    sold_id: BigNumber;
    tokens_sold: BigNumber;
    bought_id: BigNumber;
    tokens_bought: BigNumber;
}
export declare type TokenExchangeEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], TokenExchangeEventObject>;
export declare type TokenExchangeEventFilter = TypedEventFilter<TokenExchangeEvent>;
export interface TokenExchangeUnderlyingEventObject {
    buyer: string;
    sold_id: BigNumber;
    tokens_sold: BigNumber;
    bought_id: BigNumber;
    tokens_bought: BigNumber;
}
export declare type TokenExchangeUnderlyingEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], TokenExchangeUnderlyingEventObject>;
export declare type TokenExchangeUnderlyingEventFilter = TypedEventFilter<TokenExchangeUnderlyingEvent>;
export interface AddLiquidityEventObject {
    provider: string;
    token_amounts: [BigNumber, BigNumber, BigNumber, BigNumber];
    fees: [BigNumber, BigNumber, BigNumber, BigNumber];
    invariant: BigNumber;
    token_supply: BigNumber;
}
export declare type AddLiquidityEvent = TypedEvent<[
    string,
    [
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ],
    [
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ],
    BigNumber,
    BigNumber
], AddLiquidityEventObject>;
export declare type AddLiquidityEventFilter = TypedEventFilter<AddLiquidityEvent>;
export interface RemoveLiquidityEventObject {
    provider: string;
    token_amounts: [BigNumber, BigNumber, BigNumber, BigNumber];
    fees: [BigNumber, BigNumber, BigNumber, BigNumber];
    token_supply: BigNumber;
}
export declare type RemoveLiquidityEvent = TypedEvent<[
    string,
    [BigNumber, BigNumber, BigNumber, BigNumber],
    [BigNumber, BigNumber, BigNumber, BigNumber],
    BigNumber
], RemoveLiquidityEventObject>;
export declare type RemoveLiquidityEventFilter = TypedEventFilter<RemoveLiquidityEvent>;
export interface RemoveLiquidityImbalanceEventObject {
    provider: string;
    token_amounts: [BigNumber, BigNumber, BigNumber, BigNumber];
    fees: [BigNumber, BigNumber, BigNumber, BigNumber];
    invariant: BigNumber;
    token_supply: BigNumber;
}
export declare type RemoveLiquidityImbalanceEvent = TypedEvent<[
    string,
    [
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ],
    [
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ],
    BigNumber,
    BigNumber
], RemoveLiquidityImbalanceEventObject>;
export declare type RemoveLiquidityImbalanceEventFilter = TypedEventFilter<RemoveLiquidityImbalanceEvent>;
export interface CommitNewAdminEventObject {
    deadline: BigNumber;
    admin: string;
}
export declare type CommitNewAdminEvent = TypedEvent<[BigNumber, string], CommitNewAdminEventObject>;
export declare type CommitNewAdminEventFilter = TypedEventFilter<CommitNewAdminEvent>;
export interface NewAdminEventObject {
    admin: string;
}
export declare type NewAdminEvent = TypedEvent<[string], NewAdminEventObject>;
export declare type NewAdminEventFilter = TypedEventFilter<NewAdminEvent>;
export interface CommitNewParametersEventObject {
    deadline: BigNumber;
    A: BigNumber;
    fee: BigNumber;
    admin_fee: BigNumber;
}
export declare type CommitNewParametersEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], CommitNewParametersEventObject>;
export declare type CommitNewParametersEventFilter = TypedEventFilter<CommitNewParametersEvent>;
export interface NewParametersEventObject {
    A: BigNumber;
    fee: BigNumber;
    admin_fee: BigNumber;
}
export declare type NewParametersEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], NewParametersEventObject>;
export declare type NewParametersEventFilter = TypedEventFilter<NewParametersEvent>;
export interface CurvePoolLegacy extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: CurvePoolLegacyInterface;
    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: {
        get_virtual_price(overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        calc_token_amount(amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], deposit: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        add_liquidity(amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], min_mint_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        get_dy(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        get_dx(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        get_dy_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        get_dx_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        exchange(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        exchange_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        remove_liquidity(_amount: PromiseOrValue<BigNumberish>, min_amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        remove_liquidity_imbalance(amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], max_burn_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        commit_new_parameters(amplification: PromiseOrValue<BigNumberish>, new_fee: PromiseOrValue<BigNumberish>, new_admin_fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        apply_new_parameters(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revert_new_parameters(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        commit_transfer_ownership(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        apply_transfer_ownership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        revert_transfer_ownership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdraw_admin_fees(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        kill_me(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        unkill_me(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string] & {
            out: string;
        }>;
        underlying_coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string] & {
            out: string;
        }>;
        balances(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        A(overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        fee(overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        admin_fee(overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        owner(overrides?: CallOverrides): Promise<[string] & {
            out: string;
        }>;
        admin_actions_deadline(overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        transfer_ownership_deadline(overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        future_A(overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        future_fee(overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        future_admin_fee(overrides?: CallOverrides): Promise<[BigNumber] & {
            out: BigNumber;
        }>;
        future_owner(overrides?: CallOverrides): Promise<[string] & {
            out: string;
        }>;
    };
    get_virtual_price(overrides?: CallOverrides): Promise<BigNumber>;
    calc_token_amount(amounts: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ], deposit: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<BigNumber>;
    add_liquidity(amounts: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ], min_mint_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    get_dy(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    get_dx(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    get_dy_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    get_dx_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    exchange(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    exchange_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    remove_liquidity(_amount: PromiseOrValue<BigNumberish>, min_amounts: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    remove_liquidity_imbalance(amounts: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ], max_burn_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    commit_new_parameters(amplification: PromiseOrValue<BigNumberish>, new_fee: PromiseOrValue<BigNumberish>, new_admin_fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    apply_new_parameters(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revert_new_parameters(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    commit_transfer_ownership(_owner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    apply_transfer_ownership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    revert_transfer_ownership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdraw_admin_fees(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    kill_me(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    unkill_me(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    underlying_coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    balances(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    A(overrides?: CallOverrides): Promise<BigNumber>;
    fee(overrides?: CallOverrides): Promise<BigNumber>;
    admin_fee(overrides?: CallOverrides): Promise<BigNumber>;
    owner(overrides?: CallOverrides): Promise<string>;
    admin_actions_deadline(overrides?: CallOverrides): Promise<BigNumber>;
    transfer_ownership_deadline(overrides?: CallOverrides): Promise<BigNumber>;
    future_A(overrides?: CallOverrides): Promise<BigNumber>;
    future_fee(overrides?: CallOverrides): Promise<BigNumber>;
    future_admin_fee(overrides?: CallOverrides): Promise<BigNumber>;
    future_owner(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        get_virtual_price(overrides?: CallOverrides): Promise<BigNumber>;
        calc_token_amount(amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], deposit: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<BigNumber>;
        add_liquidity(amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], min_mint_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        get_dy(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        get_dx(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        get_dy_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        get_dx_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        exchange(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        exchange_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        remove_liquidity(_amount: PromiseOrValue<BigNumberish>, min_amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], overrides?: CallOverrides): Promise<void>;
        remove_liquidity_imbalance(amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], max_burn_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        commit_new_parameters(amplification: PromiseOrValue<BigNumberish>, new_fee: PromiseOrValue<BigNumberish>, new_admin_fee: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        apply_new_parameters(overrides?: CallOverrides): Promise<void>;
        revert_new_parameters(overrides?: CallOverrides): Promise<void>;
        commit_transfer_ownership(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        apply_transfer_ownership(overrides?: CallOverrides): Promise<void>;
        revert_transfer_ownership(overrides?: CallOverrides): Promise<void>;
        withdraw_admin_fees(overrides?: CallOverrides): Promise<void>;
        kill_me(overrides?: CallOverrides): Promise<void>;
        unkill_me(overrides?: CallOverrides): Promise<void>;
        coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        underlying_coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        balances(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        A(overrides?: CallOverrides): Promise<BigNumber>;
        fee(overrides?: CallOverrides): Promise<BigNumber>;
        admin_fee(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<string>;
        admin_actions_deadline(overrides?: CallOverrides): Promise<BigNumber>;
        transfer_ownership_deadline(overrides?: CallOverrides): Promise<BigNumber>;
        future_A(overrides?: CallOverrides): Promise<BigNumber>;
        future_fee(overrides?: CallOverrides): Promise<BigNumber>;
        future_admin_fee(overrides?: CallOverrides): Promise<BigNumber>;
        future_owner(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        'TokenExchange(address,int128,uint256,int128,uint256)'(buyer?: PromiseOrValue<string> | null, sold_id?: null, tokens_sold?: null, bought_id?: null, tokens_bought?: null): TokenExchangeEventFilter;
        TokenExchange(buyer?: PromiseOrValue<string> | null, sold_id?: null, tokens_sold?: null, bought_id?: null, tokens_bought?: null): TokenExchangeEventFilter;
        'TokenExchangeUnderlying(address,int128,uint256,int128,uint256)'(buyer?: PromiseOrValue<string> | null, sold_id?: null, tokens_sold?: null, bought_id?: null, tokens_bought?: null): TokenExchangeUnderlyingEventFilter;
        TokenExchangeUnderlying(buyer?: PromiseOrValue<string> | null, sold_id?: null, tokens_sold?: null, bought_id?: null, tokens_bought?: null): TokenExchangeUnderlyingEventFilter;
        'AddLiquidity(address,uint256[4],uint256[4],uint256,uint256)'(provider?: PromiseOrValue<string> | null, token_amounts?: null, fees?: null, invariant?: null, token_supply?: null): AddLiquidityEventFilter;
        AddLiquidity(provider?: PromiseOrValue<string> | null, token_amounts?: null, fees?: null, invariant?: null, token_supply?: null): AddLiquidityEventFilter;
        'RemoveLiquidity(address,uint256[4],uint256[4],uint256)'(provider?: PromiseOrValue<string> | null, token_amounts?: null, fees?: null, token_supply?: null): RemoveLiquidityEventFilter;
        RemoveLiquidity(provider?: PromiseOrValue<string> | null, token_amounts?: null, fees?: null, token_supply?: null): RemoveLiquidityEventFilter;
        'RemoveLiquidityImbalance(address,uint256[4],uint256[4],uint256,uint256)'(provider?: PromiseOrValue<string> | null, token_amounts?: null, fees?: null, invariant?: null, token_supply?: null): RemoveLiquidityImbalanceEventFilter;
        RemoveLiquidityImbalance(provider?: PromiseOrValue<string> | null, token_amounts?: null, fees?: null, invariant?: null, token_supply?: null): RemoveLiquidityImbalanceEventFilter;
        'CommitNewAdmin(uint256,address)'(deadline?: PromiseOrValue<BigNumberish> | null, admin?: PromiseOrValue<string> | null): CommitNewAdminEventFilter;
        CommitNewAdmin(deadline?: PromiseOrValue<BigNumberish> | null, admin?: PromiseOrValue<string> | null): CommitNewAdminEventFilter;
        'NewAdmin(address)'(admin?: PromiseOrValue<string> | null): NewAdminEventFilter;
        NewAdmin(admin?: PromiseOrValue<string> | null): NewAdminEventFilter;
        'CommitNewParameters(uint256,uint256,uint256,uint256)'(deadline?: PromiseOrValue<BigNumberish> | null, A?: null, fee?: null, admin_fee?: null): CommitNewParametersEventFilter;
        CommitNewParameters(deadline?: PromiseOrValue<BigNumberish> | null, A?: null, fee?: null, admin_fee?: null): CommitNewParametersEventFilter;
        'NewParameters(uint256,uint256,uint256)'(A?: null, fee?: null, admin_fee?: null): NewParametersEventFilter;
        NewParameters(A?: null, fee?: null, admin_fee?: null): NewParametersEventFilter;
    };
    estimateGas: {
        get_virtual_price(overrides?: CallOverrides): Promise<BigNumber>;
        calc_token_amount(amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], deposit: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<BigNumber>;
        add_liquidity(amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], min_mint_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        get_dy(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        get_dx(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        get_dy_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        get_dx_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        exchange(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        exchange_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        remove_liquidity(_amount: PromiseOrValue<BigNumberish>, min_amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        remove_liquidity_imbalance(amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], max_burn_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        commit_new_parameters(amplification: PromiseOrValue<BigNumberish>, new_fee: PromiseOrValue<BigNumberish>, new_admin_fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        apply_new_parameters(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revert_new_parameters(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        commit_transfer_ownership(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        apply_transfer_ownership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        revert_transfer_ownership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdraw_admin_fees(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        kill_me(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        unkill_me(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        underlying_coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        balances(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        A(overrides?: CallOverrides): Promise<BigNumber>;
        fee(overrides?: CallOverrides): Promise<BigNumber>;
        admin_fee(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        admin_actions_deadline(overrides?: CallOverrides): Promise<BigNumber>;
        transfer_ownership_deadline(overrides?: CallOverrides): Promise<BigNumber>;
        future_A(overrides?: CallOverrides): Promise<BigNumber>;
        future_fee(overrides?: CallOverrides): Promise<BigNumber>;
        future_admin_fee(overrides?: CallOverrides): Promise<BigNumber>;
        future_owner(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        get_virtual_price(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calc_token_amount(amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], deposit: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        add_liquidity(amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], min_mint_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        get_dy(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_dx(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_dy_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_dx_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        exchange(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        exchange_underlying(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        remove_liquidity(_amount: PromiseOrValue<BigNumberish>, min_amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        remove_liquidity_imbalance(amounts: [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ], max_burn_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        commit_new_parameters(amplification: PromiseOrValue<BigNumberish>, new_fee: PromiseOrValue<BigNumberish>, new_admin_fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        apply_new_parameters(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revert_new_parameters(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        commit_transfer_ownership(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        apply_transfer_ownership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        revert_transfer_ownership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdraw_admin_fees(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        kill_me(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        unkill_me(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        underlying_coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balances(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        A(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        admin_fee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        admin_actions_deadline(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transfer_ownership_deadline(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_A(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_fee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_admin_fee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
