import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, 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 CurvePoolInterface extends utils.Interface {
    functions: {
        'exchange(uint256,uint256,uint256,uint256)': FunctionFragment;
        'exchange(uint256,uint256,uint256,uint256,bool)': FunctionFragment;
        'exchange(uint256,uint256,uint256,uint256,bool,address)': FunctionFragment;
        'exchange_underlying(uint256,uint256,uint256,uint256)': FunctionFragment;
        'exchange_underlying(uint256,uint256,uint256,uint256,address)': FunctionFragment;
        'exchange_extended(uint256,uint256,uint256,uint256,bool,address,address,bytes32)': FunctionFragment;
        'add_liquidity(uint256[2],uint256)': FunctionFragment;
        'add_liquidity(uint256[2],uint256,bool)': FunctionFragment;
        'add_liquidity(uint256[2],uint256,bool,address)': FunctionFragment;
        'remove_liquidity(uint256,uint256[2])': FunctionFragment;
        'remove_liquidity(uint256,uint256[2],bool)': FunctionFragment;
        'remove_liquidity(uint256,uint256[2],bool,address)': FunctionFragment;
        'remove_liquidity_one_coin(uint256,uint256,uint256)': FunctionFragment;
        'remove_liquidity_one_coin(uint256,uint256,uint256,bool)': FunctionFragment;
        'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)': FunctionFragment;
        'claim_admin_fees()': FunctionFragment;
        'ramp_A_gamma(uint256,uint256,uint256)': FunctionFragment;
        'stop_ramp_A_gamma()': FunctionFragment;
        'commit_new_parameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256)': FunctionFragment;
        'apply_new_parameters()': FunctionFragment;
        'revert_new_parameters()': FunctionFragment;
        'get_dy(uint256,uint256,uint256)': FunctionFragment;
        'calc_token_amount(uint256[2])': FunctionFragment;
        'calc_withdraw_one_coin(uint256,uint256)': FunctionFragment;
        'lp_price()': FunctionFragment;
        'A()': FunctionFragment;
        'gamma()': FunctionFragment;
        'fee()': FunctionFragment;
        'get_virtual_price()': FunctionFragment;
        'price_oracle()': FunctionFragment;
        'initialize(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,address[2],uint256)': FunctionFragment;
        'token()': FunctionFragment;
        'coins(uint256)': FunctionFragment;
        'price_scale()': FunctionFragment;
        'last_prices()': FunctionFragment;
        'last_prices_timestamp()': FunctionFragment;
        'initial_A_gamma()': FunctionFragment;
        'future_A_gamma()': FunctionFragment;
        'initial_A_gamma_time()': FunctionFragment;
        'future_A_gamma_time()': FunctionFragment;
        'allowed_extra_profit()': FunctionFragment;
        'future_allowed_extra_profit()': FunctionFragment;
        'fee_gamma()': FunctionFragment;
        'future_fee_gamma()': FunctionFragment;
        'adjustment_step()': FunctionFragment;
        'future_adjustment_step()': FunctionFragment;
        'ma_half_time()': FunctionFragment;
        'future_ma_half_time()': FunctionFragment;
        'mid_fee()': FunctionFragment;
        'out_fee()': FunctionFragment;
        'admin_fee()': FunctionFragment;
        'future_mid_fee()': FunctionFragment;
        'future_out_fee()': FunctionFragment;
        'future_admin_fee()': FunctionFragment;
        'balances(uint256)': FunctionFragment;
        'D()': FunctionFragment;
        'factory()': FunctionFragment;
        'xcp_profit()': FunctionFragment;
        'xcp_profit_a()': FunctionFragment;
        'virtual_price()': FunctionFragment;
        'admin_actions_deadline()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'exchange(uint256,uint256,uint256,uint256)' | 'exchange(uint256,uint256,uint256,uint256,bool)' | 'exchange(uint256,uint256,uint256,uint256,bool,address)' | 'exchange_underlying(uint256,uint256,uint256,uint256)' | 'exchange_underlying(uint256,uint256,uint256,uint256,address)' | 'exchange_extended' | 'add_liquidity(uint256[2],uint256)' | 'add_liquidity(uint256[2],uint256,bool)' | 'add_liquidity(uint256[2],uint256,bool,address)' | 'remove_liquidity(uint256,uint256[2])' | 'remove_liquidity(uint256,uint256[2],bool)' | 'remove_liquidity(uint256,uint256[2],bool,address)' | 'remove_liquidity_one_coin(uint256,uint256,uint256)' | 'remove_liquidity_one_coin(uint256,uint256,uint256,bool)' | 'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)' | 'claim_admin_fees' | 'ramp_A_gamma' | 'stop_ramp_A_gamma' | 'commit_new_parameters' | 'apply_new_parameters' | 'revert_new_parameters' | 'get_dy' | 'calc_token_amount' | 'calc_withdraw_one_coin' | 'lp_price' | 'A' | 'gamma' | 'fee' | 'get_virtual_price' | 'price_oracle' | 'initialize' | 'token' | 'coins' | 'price_scale' | 'last_prices' | 'last_prices_timestamp' | 'initial_A_gamma' | 'future_A_gamma' | 'initial_A_gamma_time' | 'future_A_gamma_time' | 'allowed_extra_profit' | 'future_allowed_extra_profit' | 'fee_gamma' | 'future_fee_gamma' | 'adjustment_step' | 'future_adjustment_step' | 'ma_half_time' | 'future_ma_half_time' | 'mid_fee' | 'out_fee' | 'admin_fee' | 'future_mid_fee' | 'future_out_fee' | 'future_admin_fee' | 'balances' | 'D' | 'factory' | 'xcp_profit' | 'xcp_profit_a' | 'virtual_price' | 'admin_actions_deadline'): FunctionFragment;
    encodeFunctionData(functionFragment: 'exchange(uint256,uint256,uint256,uint256)', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'exchange(uint256,uint256,uint256,uint256,bool)', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<boolean>
    ]): string;
    encodeFunctionData(functionFragment: 'exchange(uint256,uint256,uint256,uint256,bool,address)', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<boolean>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'exchange_underlying(uint256,uint256,uint256,uint256)', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'exchange_underlying(uint256,uint256,uint256,uint256,address)', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'exchange_extended', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<boolean>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'add_liquidity(uint256[2],uint256)', values: [[PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'add_liquidity(uint256[2],uint256,bool)', values: [
        [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ],
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<boolean>
    ]): string;
    encodeFunctionData(functionFragment: 'add_liquidity(uint256[2],uint256,bool,address)', values: [
        [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ],
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<boolean>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'remove_liquidity(uint256,uint256[2])', values: [PromiseOrValue<BigNumberish>, [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]]): string;
    encodeFunctionData(functionFragment: 'remove_liquidity(uint256,uint256[2],bool)', values: [
        PromiseOrValue<BigNumberish>,
        [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ],
        PromiseOrValue<boolean>
    ]): string;
    encodeFunctionData(functionFragment: 'remove_liquidity(uint256,uint256[2],bool,address)', values: [
        PromiseOrValue<BigNumberish>,
        [
            PromiseOrValue<BigNumberish>,
            PromiseOrValue<BigNumberish>
        ],
        PromiseOrValue<boolean>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'remove_liquidity_one_coin(uint256,uint256,uint256)', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'remove_liquidity_one_coin(uint256,uint256,uint256,bool)', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<boolean>
    ]): string;
    encodeFunctionData(functionFragment: 'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<boolean>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'claim_admin_fees', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ramp_A_gamma', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'stop_ramp_A_gamma', values?: undefined): string;
    encodeFunctionData(functionFragment: 'commit_new_parameters', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        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: 'get_dy', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'calc_token_amount', values: [[PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]]): string;
    encodeFunctionData(functionFragment: 'calc_withdraw_one_coin', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'lp_price', values?: undefined): string;
    encodeFunctionData(functionFragment: 'A', values?: undefined): string;
    encodeFunctionData(functionFragment: 'gamma', values?: undefined): string;
    encodeFunctionData(functionFragment: 'fee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'get_virtual_price', values?: undefined): string;
    encodeFunctionData(functionFragment: 'price_oracle', values?: undefined): string;
    encodeFunctionData(functionFragment: 'initialize', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        [
            PromiseOrValue<string>,
            PromiseOrValue<string>
        ],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'token', values?: undefined): string;
    encodeFunctionData(functionFragment: 'coins', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'price_scale', values?: undefined): string;
    encodeFunctionData(functionFragment: 'last_prices', values?: undefined): string;
    encodeFunctionData(functionFragment: 'last_prices_timestamp', values?: undefined): string;
    encodeFunctionData(functionFragment: 'initial_A_gamma', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_A_gamma', values?: undefined): string;
    encodeFunctionData(functionFragment: 'initial_A_gamma_time', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_A_gamma_time', values?: undefined): string;
    encodeFunctionData(functionFragment: 'allowed_extra_profit', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_allowed_extra_profit', values?: undefined): string;
    encodeFunctionData(functionFragment: 'fee_gamma', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_fee_gamma', values?: undefined): string;
    encodeFunctionData(functionFragment: 'adjustment_step', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_adjustment_step', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ma_half_time', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_ma_half_time', values?: undefined): string;
    encodeFunctionData(functionFragment: 'mid_fee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'out_fee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'admin_fee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_mid_fee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_out_fee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_admin_fee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'balances', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'D', values?: undefined): string;
    encodeFunctionData(functionFragment: 'factory', values?: undefined): string;
    encodeFunctionData(functionFragment: 'xcp_profit', values?: undefined): string;
    encodeFunctionData(functionFragment: 'xcp_profit_a', values?: undefined): string;
    encodeFunctionData(functionFragment: 'virtual_price', values?: undefined): string;
    encodeFunctionData(functionFragment: 'admin_actions_deadline', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'exchange(uint256,uint256,uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'exchange(uint256,uint256,uint256,uint256,bool)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'exchange(uint256,uint256,uint256,uint256,bool,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'exchange_underlying(uint256,uint256,uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'exchange_underlying(uint256,uint256,uint256,uint256,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'exchange_extended', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'add_liquidity(uint256[2],uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'add_liquidity(uint256[2],uint256,bool)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'add_liquidity(uint256[2],uint256,bool,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'remove_liquidity(uint256,uint256[2])', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'remove_liquidity(uint256,uint256[2],bool)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'remove_liquidity(uint256,uint256[2],bool,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'remove_liquidity_one_coin(uint256,uint256,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'remove_liquidity_one_coin(uint256,uint256,uint256,bool)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claim_admin_fees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ramp_A_gamma', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'stop_ramp_A_gamma', 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: 'get_dy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'calc_token_amount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'calc_withdraw_one_coin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lp_price', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'A', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'gamma', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_virtual_price', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'price_oracle', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'token', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'coins', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'price_scale', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'last_prices', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'last_prices_timestamp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initial_A_gamma', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_A_gamma', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initial_A_gamma_time', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_A_gamma_time', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allowed_extra_profit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_allowed_extra_profit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fee_gamma', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_fee_gamma', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'adjustment_step', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_adjustment_step', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ma_half_time', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_ma_half_time', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'mid_fee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'out_fee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'admin_fee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_mid_fee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_out_fee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_admin_fee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balances', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'D', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'factory', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'xcp_profit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'xcp_profit_a', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'virtual_price', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'admin_actions_deadline', data: BytesLike): Result;
    events: {
        'TokenExchange(address,uint256,uint256,uint256,uint256)': EventFragment;
        'AddLiquidity(address,uint256[2],uint256,uint256)': EventFragment;
        'RemoveLiquidity(address,uint256[2],uint256)': EventFragment;
        'RemoveLiquidityOne(address,uint256,uint256,uint256)': EventFragment;
        'CommitNewParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment;
        'NewParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment;
        'RampAgamma(uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment;
        'StopRampA(uint256,uint256,uint256)': EventFragment;
        'ClaimAdminFee(address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'TokenExchange'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AddLiquidity'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RemoveLiquidity'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RemoveLiquidityOne'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CommitNewParameters'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NewParameters'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'RampAgamma'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StopRampA'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ClaimAdminFee'): 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 AddLiquidityEventObject {
    provider: string;
    token_amounts: [BigNumber, BigNumber];
    fee: BigNumber;
    token_supply: BigNumber;
}
export declare type AddLiquidityEvent = TypedEvent<[
    string,
    [BigNumber, BigNumber],
    BigNumber,
    BigNumber
], AddLiquidityEventObject>;
export declare type AddLiquidityEventFilter = TypedEventFilter<AddLiquidityEvent>;
export interface RemoveLiquidityEventObject {
    provider: string;
    token_amounts: [BigNumber, BigNumber];
    token_supply: BigNumber;
}
export declare type RemoveLiquidityEvent = TypedEvent<[string, [BigNumber, BigNumber], BigNumber], RemoveLiquidityEventObject>;
export declare type RemoveLiquidityEventFilter = TypedEventFilter<RemoveLiquidityEvent>;
export interface RemoveLiquidityOneEventObject {
    provider: string;
    token_amount: BigNumber;
    coin_index: BigNumber;
    coin_amount: BigNumber;
}
export declare type RemoveLiquidityOneEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber
], RemoveLiquidityOneEventObject>;
export declare type RemoveLiquidityOneEventFilter = TypedEventFilter<RemoveLiquidityOneEvent>;
export interface CommitNewParametersEventObject {
    deadline: BigNumber;
    admin_fee: BigNumber;
    mid_fee: BigNumber;
    out_fee: BigNumber;
    fee_gamma: BigNumber;
    allowed_extra_profit: BigNumber;
    adjustment_step: BigNumber;
    ma_half_time: BigNumber;
}
export declare type CommitNewParametersEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], CommitNewParametersEventObject>;
export declare type CommitNewParametersEventFilter = TypedEventFilter<CommitNewParametersEvent>;
export interface NewParametersEventObject {
    admin_fee: BigNumber;
    mid_fee: BigNumber;
    out_fee: BigNumber;
    fee_gamma: BigNumber;
    allowed_extra_profit: BigNumber;
    adjustment_step: BigNumber;
    ma_half_time: BigNumber;
}
export declare type NewParametersEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], NewParametersEventObject>;
export declare type NewParametersEventFilter = TypedEventFilter<NewParametersEvent>;
export interface RampAgammaEventObject {
    initial_A: BigNumber;
    future_A: BigNumber;
    initial_gamma: BigNumber;
    future_gamma: BigNumber;
    initial_time: BigNumber;
    future_time: BigNumber;
}
export declare type RampAgammaEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], RampAgammaEventObject>;
export declare type RampAgammaEventFilter = TypedEventFilter<RampAgammaEvent>;
export interface StopRampAEventObject {
    current_A: BigNumber;
    current_gamma: BigNumber;
    time: BigNumber;
}
export declare type StopRampAEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], StopRampAEventObject>;
export declare type StopRampAEventFilter = TypedEventFilter<StopRampAEvent>;
export interface ClaimAdminFeeEventObject {
    admin: string;
    tokens: BigNumber;
}
export declare type ClaimAdminFeeEvent = TypedEvent<[string, BigNumber], ClaimAdminFeeEventObject>;
export declare type ClaimAdminFeeEventFilter = TypedEventFilter<ClaimAdminFeeEvent>;
export interface CurvePool extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: CurvePoolInterface;
    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: {
        'exchange(uint256,uint256,uint256,uint256)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'exchange(uint256,uint256,uint256,uint256,bool)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'exchange(uint256,uint256,uint256,uint256,bool,address)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'exchange_underlying(uint256,uint256,uint256,uint256)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'exchange_underlying(uint256,uint256,uint256,uint256,address)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        exchange_extended(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, sender: PromiseOrValue<string>, receiver: PromiseOrValue<string>, cb: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'add_liquidity(uint256[2],uint256)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'add_liquidity(uint256[2],uint256,bool)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'add_liquidity(uint256[2],uint256,bool,address)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'remove_liquidity(uint256,uint256[2])'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'remove_liquidity(uint256,uint256[2],bool)'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], use_eth: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'remove_liquidity(uint256,uint256[2],bool,address)'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'remove_liquidity_one_coin(uint256,uint256,uint256)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'remove_liquidity_one_coin(uint256,uint256,uint256,bool)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claim_admin_fees(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        ramp_A_gamma(future_A: PromiseOrValue<BigNumberish>, future_gamma: PromiseOrValue<BigNumberish>, future_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        stop_ramp_A_gamma(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        commit_new_parameters(_new_mid_fee: PromiseOrValue<BigNumberish>, _new_out_fee: PromiseOrValue<BigNumberish>, _new_admin_fee: PromiseOrValue<BigNumberish>, _new_fee_gamma: PromiseOrValue<BigNumberish>, _new_allowed_extra_profit: PromiseOrValue<BigNumberish>, _new_adjustment_step: PromiseOrValue<BigNumberish>, _new_ma_half_time: 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>;
        get_dy(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        calc_token_amount(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: CallOverrides): Promise<[BigNumber]>;
        calc_withdraw_one_coin(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        lp_price(overrides?: CallOverrides): Promise<[BigNumber]>;
        A(overrides?: CallOverrides): Promise<[BigNumber]>;
        gamma(overrides?: CallOverrides): Promise<[BigNumber]>;
        fee(overrides?: CallOverrides): Promise<[BigNumber]>;
        get_virtual_price(overrides?: CallOverrides): Promise<[BigNumber]>;
        price_oracle(overrides?: CallOverrides): Promise<[BigNumber]>;
        initialize(A: PromiseOrValue<BigNumberish>, gamma: PromiseOrValue<BigNumberish>, mid_fee: PromiseOrValue<BigNumberish>, out_fee: PromiseOrValue<BigNumberish>, allowed_extra_profit: PromiseOrValue<BigNumberish>, fee_gamma: PromiseOrValue<BigNumberish>, adjustment_step: PromiseOrValue<BigNumberish>, admin_fee: PromiseOrValue<BigNumberish>, ma_half_time: PromiseOrValue<BigNumberish>, initial_price: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _coins: [PromiseOrValue<string>, PromiseOrValue<string>], _precisions: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        token(overrides?: CallOverrides): Promise<[string]>;
        coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        price_scale(overrides?: CallOverrides): Promise<[BigNumber]>;
        last_prices(overrides?: CallOverrides): Promise<[BigNumber]>;
        last_prices_timestamp(overrides?: CallOverrides): Promise<[BigNumber]>;
        initial_A_gamma(overrides?: CallOverrides): Promise<[BigNumber]>;
        future_A_gamma(overrides?: CallOverrides): Promise<[BigNumber]>;
        initial_A_gamma_time(overrides?: CallOverrides): Promise<[BigNumber]>;
        future_A_gamma_time(overrides?: CallOverrides): Promise<[BigNumber]>;
        allowed_extra_profit(overrides?: CallOverrides): Promise<[BigNumber]>;
        future_allowed_extra_profit(overrides?: CallOverrides): Promise<[BigNumber]>;
        fee_gamma(overrides?: CallOverrides): Promise<[BigNumber]>;
        future_fee_gamma(overrides?: CallOverrides): Promise<[BigNumber]>;
        adjustment_step(overrides?: CallOverrides): Promise<[BigNumber]>;
        future_adjustment_step(overrides?: CallOverrides): Promise<[BigNumber]>;
        ma_half_time(overrides?: CallOverrides): Promise<[BigNumber]>;
        future_ma_half_time(overrides?: CallOverrides): Promise<[BigNumber]>;
        mid_fee(overrides?: CallOverrides): Promise<[BigNumber]>;
        out_fee(overrides?: CallOverrides): Promise<[BigNumber]>;
        admin_fee(overrides?: CallOverrides): Promise<[BigNumber]>;
        future_mid_fee(overrides?: CallOverrides): Promise<[BigNumber]>;
        future_out_fee(overrides?: CallOverrides): Promise<[BigNumber]>;
        future_admin_fee(overrides?: CallOverrides): Promise<[BigNumber]>;
        balances(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        D(overrides?: CallOverrides): Promise<[BigNumber]>;
        factory(overrides?: CallOverrides): Promise<[string]>;
        xcp_profit(overrides?: CallOverrides): Promise<[BigNumber]>;
        xcp_profit_a(overrides?: CallOverrides): Promise<[BigNumber]>;
        virtual_price(overrides?: CallOverrides): Promise<[BigNumber]>;
        admin_actions_deadline(overrides?: CallOverrides): Promise<[BigNumber]>;
    };
    'exchange(uint256,uint256,uint256,uint256)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'exchange(uint256,uint256,uint256,uint256,bool)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'exchange(uint256,uint256,uint256,uint256,bool,address)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'exchange_underlying(uint256,uint256,uint256,uint256)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'exchange_underlying(uint256,uint256,uint256,uint256,address)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    exchange_extended(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, sender: PromiseOrValue<string>, receiver: PromiseOrValue<string>, cb: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'add_liquidity(uint256[2],uint256)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'add_liquidity(uint256[2],uint256,bool)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'add_liquidity(uint256[2],uint256,bool,address)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'remove_liquidity(uint256,uint256[2])'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'remove_liquidity(uint256,uint256[2],bool)'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], use_eth: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'remove_liquidity(uint256,uint256[2],bool,address)'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'remove_liquidity_one_coin(uint256,uint256,uint256)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'remove_liquidity_one_coin(uint256,uint256,uint256,bool)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claim_admin_fees(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    ramp_A_gamma(future_A: PromiseOrValue<BigNumberish>, future_gamma: PromiseOrValue<BigNumberish>, future_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    stop_ramp_A_gamma(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    commit_new_parameters(_new_mid_fee: PromiseOrValue<BigNumberish>, _new_out_fee: PromiseOrValue<BigNumberish>, _new_admin_fee: PromiseOrValue<BigNumberish>, _new_fee_gamma: PromiseOrValue<BigNumberish>, _new_allowed_extra_profit: PromiseOrValue<BigNumberish>, _new_adjustment_step: PromiseOrValue<BigNumberish>, _new_ma_half_time: 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>;
    get_dy(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    calc_token_amount(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: CallOverrides): Promise<BigNumber>;
    calc_withdraw_one_coin(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    lp_price(overrides?: CallOverrides): Promise<BigNumber>;
    A(overrides?: CallOverrides): Promise<BigNumber>;
    gamma(overrides?: CallOverrides): Promise<BigNumber>;
    fee(overrides?: CallOverrides): Promise<BigNumber>;
    get_virtual_price(overrides?: CallOverrides): Promise<BigNumber>;
    price_oracle(overrides?: CallOverrides): Promise<BigNumber>;
    initialize(A: PromiseOrValue<BigNumberish>, gamma: PromiseOrValue<BigNumberish>, mid_fee: PromiseOrValue<BigNumberish>, out_fee: PromiseOrValue<BigNumberish>, allowed_extra_profit: PromiseOrValue<BigNumberish>, fee_gamma: PromiseOrValue<BigNumberish>, adjustment_step: PromiseOrValue<BigNumberish>, admin_fee: PromiseOrValue<BigNumberish>, ma_half_time: PromiseOrValue<BigNumberish>, initial_price: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _coins: [PromiseOrValue<string>, PromiseOrValue<string>], _precisions: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    token(overrides?: CallOverrides): Promise<string>;
    coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    price_scale(overrides?: CallOverrides): Promise<BigNumber>;
    last_prices(overrides?: CallOverrides): Promise<BigNumber>;
    last_prices_timestamp(overrides?: CallOverrides): Promise<BigNumber>;
    initial_A_gamma(overrides?: CallOverrides): Promise<BigNumber>;
    future_A_gamma(overrides?: CallOverrides): Promise<BigNumber>;
    initial_A_gamma_time(overrides?: CallOverrides): Promise<BigNumber>;
    future_A_gamma_time(overrides?: CallOverrides): Promise<BigNumber>;
    allowed_extra_profit(overrides?: CallOverrides): Promise<BigNumber>;
    future_allowed_extra_profit(overrides?: CallOverrides): Promise<BigNumber>;
    fee_gamma(overrides?: CallOverrides): Promise<BigNumber>;
    future_fee_gamma(overrides?: CallOverrides): Promise<BigNumber>;
    adjustment_step(overrides?: CallOverrides): Promise<BigNumber>;
    future_adjustment_step(overrides?: CallOverrides): Promise<BigNumber>;
    ma_half_time(overrides?: CallOverrides): Promise<BigNumber>;
    future_ma_half_time(overrides?: CallOverrides): Promise<BigNumber>;
    mid_fee(overrides?: CallOverrides): Promise<BigNumber>;
    out_fee(overrides?: CallOverrides): Promise<BigNumber>;
    admin_fee(overrides?: CallOverrides): Promise<BigNumber>;
    future_mid_fee(overrides?: CallOverrides): Promise<BigNumber>;
    future_out_fee(overrides?: CallOverrides): Promise<BigNumber>;
    future_admin_fee(overrides?: CallOverrides): Promise<BigNumber>;
    balances(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    D(overrides?: CallOverrides): Promise<BigNumber>;
    factory(overrides?: CallOverrides): Promise<string>;
    xcp_profit(overrides?: CallOverrides): Promise<BigNumber>;
    xcp_profit_a(overrides?: CallOverrides): Promise<BigNumber>;
    virtual_price(overrides?: CallOverrides): Promise<BigNumber>;
    admin_actions_deadline(overrides?: CallOverrides): Promise<BigNumber>;
    callStatic: {
        'exchange(uint256,uint256,uint256,uint256)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'exchange(uint256,uint256,uint256,uint256,bool)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<BigNumber>;
        'exchange(uint256,uint256,uint256,uint256,bool,address)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'exchange_underlying(uint256,uint256,uint256,uint256)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'exchange_underlying(uint256,uint256,uint256,uint256,address)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        exchange_extended(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, sender: PromiseOrValue<string>, receiver: PromiseOrValue<string>, cb: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        'add_liquidity(uint256[2],uint256)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'add_liquidity(uint256[2],uint256,bool)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<BigNumber>;
        'add_liquidity(uint256[2],uint256,bool,address)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'remove_liquidity(uint256,uint256[2])'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: CallOverrides): Promise<void>;
        'remove_liquidity(uint256,uint256[2],bool)'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], use_eth: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        'remove_liquidity(uint256,uint256[2],bool,address)'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        'remove_liquidity_one_coin(uint256,uint256,uint256)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        'remove_liquidity_one_coin(uint256,uint256,uint256,bool)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<BigNumber>;
        'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        claim_admin_fees(overrides?: CallOverrides): Promise<void>;
        ramp_A_gamma(future_A: PromiseOrValue<BigNumberish>, future_gamma: PromiseOrValue<BigNumberish>, future_time: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        stop_ramp_A_gamma(overrides?: CallOverrides): Promise<void>;
        commit_new_parameters(_new_mid_fee: PromiseOrValue<BigNumberish>, _new_out_fee: PromiseOrValue<BigNumberish>, _new_admin_fee: PromiseOrValue<BigNumberish>, _new_fee_gamma: PromiseOrValue<BigNumberish>, _new_allowed_extra_profit: PromiseOrValue<BigNumberish>, _new_adjustment_step: PromiseOrValue<BigNumberish>, _new_ma_half_time: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        apply_new_parameters(overrides?: CallOverrides): Promise<void>;
        revert_new_parameters(overrides?: CallOverrides): Promise<void>;
        get_dy(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        calc_token_amount(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: CallOverrides): Promise<BigNumber>;
        calc_withdraw_one_coin(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        lp_price(overrides?: CallOverrides): Promise<BigNumber>;
        A(overrides?: CallOverrides): Promise<BigNumber>;
        gamma(overrides?: CallOverrides): Promise<BigNumber>;
        fee(overrides?: CallOverrides): Promise<BigNumber>;
        get_virtual_price(overrides?: CallOverrides): Promise<BigNumber>;
        price_oracle(overrides?: CallOverrides): Promise<BigNumber>;
        initialize(A: PromiseOrValue<BigNumberish>, gamma: PromiseOrValue<BigNumberish>, mid_fee: PromiseOrValue<BigNumberish>, out_fee: PromiseOrValue<BigNumberish>, allowed_extra_profit: PromiseOrValue<BigNumberish>, fee_gamma: PromiseOrValue<BigNumberish>, adjustment_step: PromiseOrValue<BigNumberish>, admin_fee: PromiseOrValue<BigNumberish>, ma_half_time: PromiseOrValue<BigNumberish>, initial_price: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _coins: [PromiseOrValue<string>, PromiseOrValue<string>], _precisions: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        token(overrides?: CallOverrides): Promise<string>;
        coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        price_scale(overrides?: CallOverrides): Promise<BigNumber>;
        last_prices(overrides?: CallOverrides): Promise<BigNumber>;
        last_prices_timestamp(overrides?: CallOverrides): Promise<BigNumber>;
        initial_A_gamma(overrides?: CallOverrides): Promise<BigNumber>;
        future_A_gamma(overrides?: CallOverrides): Promise<BigNumber>;
        initial_A_gamma_time(overrides?: CallOverrides): Promise<BigNumber>;
        future_A_gamma_time(overrides?: CallOverrides): Promise<BigNumber>;
        allowed_extra_profit(overrides?: CallOverrides): Promise<BigNumber>;
        future_allowed_extra_profit(overrides?: CallOverrides): Promise<BigNumber>;
        fee_gamma(overrides?: CallOverrides): Promise<BigNumber>;
        future_fee_gamma(overrides?: CallOverrides): Promise<BigNumber>;
        adjustment_step(overrides?: CallOverrides): Promise<BigNumber>;
        future_adjustment_step(overrides?: CallOverrides): Promise<BigNumber>;
        ma_half_time(overrides?: CallOverrides): Promise<BigNumber>;
        future_ma_half_time(overrides?: CallOverrides): Promise<BigNumber>;
        mid_fee(overrides?: CallOverrides): Promise<BigNumber>;
        out_fee(overrides?: CallOverrides): Promise<BigNumber>;
        admin_fee(overrides?: CallOverrides): Promise<BigNumber>;
        future_mid_fee(overrides?: CallOverrides): Promise<BigNumber>;
        future_out_fee(overrides?: CallOverrides): Promise<BigNumber>;
        future_admin_fee(overrides?: CallOverrides): Promise<BigNumber>;
        balances(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        D(overrides?: CallOverrides): Promise<BigNumber>;
        factory(overrides?: CallOverrides): Promise<string>;
        xcp_profit(overrides?: CallOverrides): Promise<BigNumber>;
        xcp_profit_a(overrides?: CallOverrides): Promise<BigNumber>;
        virtual_price(overrides?: CallOverrides): Promise<BigNumber>;
        admin_actions_deadline(overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'TokenExchange(address,uint256,uint256,uint256,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;
        'AddLiquidity(address,uint256[2],uint256,uint256)'(provider?: PromiseOrValue<string> | null, token_amounts?: null, fee?: null, token_supply?: null): AddLiquidityEventFilter;
        AddLiquidity(provider?: PromiseOrValue<string> | null, token_amounts?: null, fee?: null, token_supply?: null): AddLiquidityEventFilter;
        'RemoveLiquidity(address,uint256[2],uint256)'(provider?: PromiseOrValue<string> | null, token_amounts?: null, token_supply?: null): RemoveLiquidityEventFilter;
        RemoveLiquidity(provider?: PromiseOrValue<string> | null, token_amounts?: null, token_supply?: null): RemoveLiquidityEventFilter;
        'RemoveLiquidityOne(address,uint256,uint256,uint256)'(provider?: PromiseOrValue<string> | null, token_amount?: null, coin_index?: null, coin_amount?: null): RemoveLiquidityOneEventFilter;
        RemoveLiquidityOne(provider?: PromiseOrValue<string> | null, token_amount?: null, coin_index?: null, coin_amount?: null): RemoveLiquidityOneEventFilter;
        'CommitNewParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)'(deadline?: PromiseOrValue<BigNumberish> | null, admin_fee?: null, mid_fee?: null, out_fee?: null, fee_gamma?: null, allowed_extra_profit?: null, adjustment_step?: null, ma_half_time?: null): CommitNewParametersEventFilter;
        CommitNewParameters(deadline?: PromiseOrValue<BigNumberish> | null, admin_fee?: null, mid_fee?: null, out_fee?: null, fee_gamma?: null, allowed_extra_profit?: null, adjustment_step?: null, ma_half_time?: null): CommitNewParametersEventFilter;
        'NewParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256)'(admin_fee?: null, mid_fee?: null, out_fee?: null, fee_gamma?: null, allowed_extra_profit?: null, adjustment_step?: null, ma_half_time?: null): NewParametersEventFilter;
        NewParameters(admin_fee?: null, mid_fee?: null, out_fee?: null, fee_gamma?: null, allowed_extra_profit?: null, adjustment_step?: null, ma_half_time?: null): NewParametersEventFilter;
        'RampAgamma(uint256,uint256,uint256,uint256,uint256,uint256)'(initial_A?: null, future_A?: null, initial_gamma?: null, future_gamma?: null, initial_time?: null, future_time?: null): RampAgammaEventFilter;
        RampAgamma(initial_A?: null, future_A?: null, initial_gamma?: null, future_gamma?: null, initial_time?: null, future_time?: null): RampAgammaEventFilter;
        'StopRampA(uint256,uint256,uint256)'(current_A?: null, current_gamma?: null, time?: null): StopRampAEventFilter;
        StopRampA(current_A?: null, current_gamma?: null, time?: null): StopRampAEventFilter;
        'ClaimAdminFee(address,uint256)'(admin?: PromiseOrValue<string> | null, tokens?: null): ClaimAdminFeeEventFilter;
        ClaimAdminFee(admin?: PromiseOrValue<string> | null, tokens?: null): ClaimAdminFeeEventFilter;
    };
    estimateGas: {
        'exchange(uint256,uint256,uint256,uint256)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'exchange(uint256,uint256,uint256,uint256,bool)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'exchange(uint256,uint256,uint256,uint256,bool,address)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'exchange_underlying(uint256,uint256,uint256,uint256)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'exchange_underlying(uint256,uint256,uint256,uint256,address)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        exchange_extended(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, sender: PromiseOrValue<string>, receiver: PromiseOrValue<string>, cb: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'add_liquidity(uint256[2],uint256)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'add_liquidity(uint256[2],uint256,bool)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'add_liquidity(uint256[2],uint256,bool,address)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'remove_liquidity(uint256,uint256[2])'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'remove_liquidity(uint256,uint256[2],bool)'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], use_eth: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'remove_liquidity(uint256,uint256[2],bool,address)'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'remove_liquidity_one_coin(uint256,uint256,uint256)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'remove_liquidity_one_coin(uint256,uint256,uint256,bool)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claim_admin_fees(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        ramp_A_gamma(future_A: PromiseOrValue<BigNumberish>, future_gamma: PromiseOrValue<BigNumberish>, future_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        stop_ramp_A_gamma(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        commit_new_parameters(_new_mid_fee: PromiseOrValue<BigNumberish>, _new_out_fee: PromiseOrValue<BigNumberish>, _new_admin_fee: PromiseOrValue<BigNumberish>, _new_fee_gamma: PromiseOrValue<BigNumberish>, _new_allowed_extra_profit: PromiseOrValue<BigNumberish>, _new_adjustment_step: PromiseOrValue<BigNumberish>, _new_ma_half_time: 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>;
        get_dy(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        calc_token_amount(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: CallOverrides): Promise<BigNumber>;
        calc_withdraw_one_coin(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        lp_price(overrides?: CallOverrides): Promise<BigNumber>;
        A(overrides?: CallOverrides): Promise<BigNumber>;
        gamma(overrides?: CallOverrides): Promise<BigNumber>;
        fee(overrides?: CallOverrides): Promise<BigNumber>;
        get_virtual_price(overrides?: CallOverrides): Promise<BigNumber>;
        price_oracle(overrides?: CallOverrides): Promise<BigNumber>;
        initialize(A: PromiseOrValue<BigNumberish>, gamma: PromiseOrValue<BigNumberish>, mid_fee: PromiseOrValue<BigNumberish>, out_fee: PromiseOrValue<BigNumberish>, allowed_extra_profit: PromiseOrValue<BigNumberish>, fee_gamma: PromiseOrValue<BigNumberish>, adjustment_step: PromiseOrValue<BigNumberish>, admin_fee: PromiseOrValue<BigNumberish>, ma_half_time: PromiseOrValue<BigNumberish>, initial_price: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _coins: [PromiseOrValue<string>, PromiseOrValue<string>], _precisions: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        token(overrides?: CallOverrides): Promise<BigNumber>;
        coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        price_scale(overrides?: CallOverrides): Promise<BigNumber>;
        last_prices(overrides?: CallOverrides): Promise<BigNumber>;
        last_prices_timestamp(overrides?: CallOverrides): Promise<BigNumber>;
        initial_A_gamma(overrides?: CallOverrides): Promise<BigNumber>;
        future_A_gamma(overrides?: CallOverrides): Promise<BigNumber>;
        initial_A_gamma_time(overrides?: CallOverrides): Promise<BigNumber>;
        future_A_gamma_time(overrides?: CallOverrides): Promise<BigNumber>;
        allowed_extra_profit(overrides?: CallOverrides): Promise<BigNumber>;
        future_allowed_extra_profit(overrides?: CallOverrides): Promise<BigNumber>;
        fee_gamma(overrides?: CallOverrides): Promise<BigNumber>;
        future_fee_gamma(overrides?: CallOverrides): Promise<BigNumber>;
        adjustment_step(overrides?: CallOverrides): Promise<BigNumber>;
        future_adjustment_step(overrides?: CallOverrides): Promise<BigNumber>;
        ma_half_time(overrides?: CallOverrides): Promise<BigNumber>;
        future_ma_half_time(overrides?: CallOverrides): Promise<BigNumber>;
        mid_fee(overrides?: CallOverrides): Promise<BigNumber>;
        out_fee(overrides?: CallOverrides): Promise<BigNumber>;
        admin_fee(overrides?: CallOverrides): Promise<BigNumber>;
        future_mid_fee(overrides?: CallOverrides): Promise<BigNumber>;
        future_out_fee(overrides?: CallOverrides): Promise<BigNumber>;
        future_admin_fee(overrides?: CallOverrides): Promise<BigNumber>;
        balances(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        D(overrides?: CallOverrides): Promise<BigNumber>;
        factory(overrides?: CallOverrides): Promise<BigNumber>;
        xcp_profit(overrides?: CallOverrides): Promise<BigNumber>;
        xcp_profit_a(overrides?: CallOverrides): Promise<BigNumber>;
        virtual_price(overrides?: CallOverrides): Promise<BigNumber>;
        admin_actions_deadline(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        'exchange(uint256,uint256,uint256,uint256)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'exchange(uint256,uint256,uint256,uint256,bool)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'exchange(uint256,uint256,uint256,uint256,bool,address)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'exchange_underlying(uint256,uint256,uint256,uint256)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'exchange_underlying(uint256,uint256,uint256,uint256,address)'(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, receiver: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        exchange_extended(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, min_dy: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, sender: PromiseOrValue<string>, receiver: PromiseOrValue<string>, cb: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'add_liquidity(uint256[2],uint256)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'add_liquidity(uint256[2],uint256,bool)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'add_liquidity(uint256[2],uint256,bool,address)'(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], min_mint_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'remove_liquidity(uint256,uint256[2])'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'remove_liquidity(uint256,uint256[2],bool)'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], use_eth: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'remove_liquidity(uint256,uint256[2],bool,address)'(_amount: PromiseOrValue<BigNumberish>, min_amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'remove_liquidity_one_coin(uint256,uint256,uint256)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'remove_liquidity_one_coin(uint256,uint256,uint256,bool)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'remove_liquidity_one_coin(uint256,uint256,uint256,bool,address)'(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, min_amount: PromiseOrValue<BigNumberish>, use_eth: PromiseOrValue<boolean>, receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claim_admin_fees(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        ramp_A_gamma(future_A: PromiseOrValue<BigNumberish>, future_gamma: PromiseOrValue<BigNumberish>, future_time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        stop_ramp_A_gamma(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        commit_new_parameters(_new_mid_fee: PromiseOrValue<BigNumberish>, _new_out_fee: PromiseOrValue<BigNumberish>, _new_admin_fee: PromiseOrValue<BigNumberish>, _new_fee_gamma: PromiseOrValue<BigNumberish>, _new_allowed_extra_profit: PromiseOrValue<BigNumberish>, _new_adjustment_step: PromiseOrValue<BigNumberish>, _new_ma_half_time: 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>;
        get_dy(i: PromiseOrValue<BigNumberish>, j: PromiseOrValue<BigNumberish>, dx: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calc_token_amount(amounts: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calc_withdraw_one_coin(token_amount: PromiseOrValue<BigNumberish>, i: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lp_price(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        A(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        gamma(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_virtual_price(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        price_oracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(A: PromiseOrValue<BigNumberish>, gamma: PromiseOrValue<BigNumberish>, mid_fee: PromiseOrValue<BigNumberish>, out_fee: PromiseOrValue<BigNumberish>, allowed_extra_profit: PromiseOrValue<BigNumberish>, fee_gamma: PromiseOrValue<BigNumberish>, adjustment_step: PromiseOrValue<BigNumberish>, admin_fee: PromiseOrValue<BigNumberish>, ma_half_time: PromiseOrValue<BigNumberish>, initial_price: PromiseOrValue<BigNumberish>, _token: PromiseOrValue<string>, _coins: [PromiseOrValue<string>, PromiseOrValue<string>], _precisions: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        token(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        coins(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        price_scale(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        last_prices(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        last_prices_timestamp(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initial_A_gamma(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_A_gamma(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initial_A_gamma_time(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_A_gamma_time(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allowed_extra_profit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_allowed_extra_profit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fee_gamma(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_fee_gamma(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        adjustment_step(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_adjustment_step(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ma_half_time(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_ma_half_time(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mid_fee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        out_fee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        admin_fee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_mid_fee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_out_fee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_admin_fee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balances(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        D(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        factory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xcp_profit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        xcp_profit_a(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        virtual_price(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        admin_actions_deadline(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
