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 CurveFactoryInterface extends utils.Interface {
    functions: {
        'find_pool_for_coins(address,address)': FunctionFragment;
        'find_pool_for_coins(address,address,uint256)': FunctionFragment;
        'get_n_coins(address)': FunctionFragment;
        'get_coins(address)': FunctionFragment;
        'get_underlying_coins(address)': FunctionFragment;
        'get_decimals(address)': FunctionFragment;
        'get_underlying_decimals(address)': FunctionFragment;
        'get_rates(address)': FunctionFragment;
        'get_balances(address)': FunctionFragment;
        'get_underlying_balances(address)': FunctionFragment;
        'get_A(address)': FunctionFragment;
        'get_fees(address)': FunctionFragment;
        'get_admin_balances(address)': FunctionFragment;
        'get_coin_indices(address,address,address)': FunctionFragment;
        'add_base_pool(address,address,address)': FunctionFragment;
        'deploy_metapool(address,string,string,address,uint256,uint256)': FunctionFragment;
        'commit_transfer_ownership(address)': FunctionFragment;
        'accept_transfer_ownership()': FunctionFragment;
        'set_fee_receiver(address,address)': FunctionFragment;
        'convert_fees()': FunctionFragment;
        'admin()': FunctionFragment;
        'future_admin()': FunctionFragment;
        'pool_list(uint256)': FunctionFragment;
        'pool_count()': FunctionFragment;
        'base_pool_list(uint256)': FunctionFragment;
        'base_pool_count()': FunctionFragment;
        'fee_receiver(address)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'find_pool_for_coins(address,address)' | 'find_pool_for_coins(address,address,uint256)' | 'get_n_coins' | 'get_coins' | 'get_underlying_coins' | 'get_decimals' | 'get_underlying_decimals' | 'get_rates' | 'get_balances' | 'get_underlying_balances' | 'get_A' | 'get_fees' | 'get_admin_balances' | 'get_coin_indices' | 'add_base_pool' | 'deploy_metapool' | 'commit_transfer_ownership' | 'accept_transfer_ownership' | 'set_fee_receiver' | 'convert_fees' | 'admin' | 'future_admin' | 'pool_list' | 'pool_count' | 'base_pool_list' | 'base_pool_count' | 'fee_receiver'): FunctionFragment;
    encodeFunctionData(functionFragment: 'find_pool_for_coins(address,address)', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'find_pool_for_coins(address,address,uint256)', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'get_n_coins', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'get_coins', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'get_underlying_coins', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'get_decimals', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'get_underlying_decimals', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'get_rates', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'get_balances', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'get_underlying_balances', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'get_A', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'get_fees', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'get_admin_balances', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'get_coin_indices', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'add_base_pool', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'deploy_metapool', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'commit_transfer_ownership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'accept_transfer_ownership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'set_fee_receiver', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'convert_fees', values?: undefined): string;
    encodeFunctionData(functionFragment: 'admin', values?: undefined): string;
    encodeFunctionData(functionFragment: 'future_admin', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pool_list', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'pool_count', values?: undefined): string;
    encodeFunctionData(functionFragment: 'base_pool_list', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'base_pool_count', values?: undefined): string;
    encodeFunctionData(functionFragment: 'fee_receiver', values: [PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: 'find_pool_for_coins(address,address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'find_pool_for_coins(address,address,uint256)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_n_coins', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_coins', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_underlying_coins', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_underlying_decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_rates', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_balances', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_underlying_balances', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_A', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_fees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_admin_balances', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'get_coin_indices', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'add_base_pool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deploy_metapool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'commit_transfer_ownership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'accept_transfer_ownership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'set_fee_receiver', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'convert_fees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'admin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'future_admin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pool_list', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pool_count', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'base_pool_list', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'base_pool_count', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fee_receiver', data: BytesLike): Result;
    events: {
        'BasePoolAdded(address,address)': EventFragment;
        'MetaPoolDeployed(address,address,uint256,uint256,address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'BasePoolAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'MetaPoolDeployed'): EventFragment;
}
export interface BasePoolAddedEventObject {
    base_pool: string;
    implementat: string;
}
export declare type BasePoolAddedEvent = TypedEvent<[string, string], BasePoolAddedEventObject>;
export declare type BasePoolAddedEventFilter = TypedEventFilter<BasePoolAddedEvent>;
export interface MetaPoolDeployedEventObject {
    coin: string;
    base_pool: string;
    A: BigNumber;
    fee: BigNumber;
    deployer: string;
}
export declare type MetaPoolDeployedEvent = TypedEvent<[
    string,
    string,
    BigNumber,
    BigNumber,
    string
], MetaPoolDeployedEventObject>;
export declare type MetaPoolDeployedEventFilter = TypedEventFilter<MetaPoolDeployedEvent>;
export interface CurveFactory extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: CurveFactoryInterface;
    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: {
        'find_pool_for_coins(address,address)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        'find_pool_for_coins(address,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, i: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        get_n_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        get_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[[string, string]]>;
        get_underlying_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string[]]>;
        get_decimals(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[[BigNumber, BigNumber]]>;
        get_underlying_decimals(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        get_rates(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[[BigNumber, BigNumber]]>;
        get_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[[BigNumber, BigNumber]]>;
        get_underlying_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        get_A(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        get_fees(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        get_admin_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[[BigNumber, BigNumber]]>;
        get_coin_indices(_pool: PromiseOrValue<string>, _from: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, boolean]>;
        add_base_pool(_base_pool: PromiseOrValue<string>, _metapool_implementation: PromiseOrValue<string>, _fee_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        deploy_metapool(_base_pool: PromiseOrValue<string>, _name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, _coin: PromiseOrValue<string>, _A: PromiseOrValue<BigNumberish>, _fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        commit_transfer_ownership(addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        accept_transfer_ownership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        set_fee_receiver(_base_pool: PromiseOrValue<string>, _fee_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        convert_fees(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        admin(overrides?: CallOverrides): Promise<[string]>;
        future_admin(overrides?: CallOverrides): Promise<[string]>;
        pool_list(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        pool_count(overrides?: CallOverrides): Promise<[BigNumber]>;
        base_pool_list(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        base_pool_count(overrides?: CallOverrides): Promise<[BigNumber]>;
        fee_receiver(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
    };
    'find_pool_for_coins(address,address)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    'find_pool_for_coins(address,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, i: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    get_n_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    get_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string, string]>;
    get_underlying_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string[]>;
    get_decimals(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    get_underlying_decimals(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber[]>;
    get_rates(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    get_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    get_underlying_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber[]>;
    get_A(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    get_fees(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    get_admin_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    get_coin_indices(_pool: PromiseOrValue<string>, _from: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, boolean]>;
    add_base_pool(_base_pool: PromiseOrValue<string>, _metapool_implementation: PromiseOrValue<string>, _fee_receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    deploy_metapool(_base_pool: PromiseOrValue<string>, _name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, _coin: PromiseOrValue<string>, _A: PromiseOrValue<BigNumberish>, _fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    commit_transfer_ownership(addr: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    accept_transfer_ownership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    set_fee_receiver(_base_pool: PromiseOrValue<string>, _fee_receiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    convert_fees(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    admin(overrides?: CallOverrides): Promise<string>;
    future_admin(overrides?: CallOverrides): Promise<string>;
    pool_list(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    pool_count(overrides?: CallOverrides): Promise<BigNumber>;
    base_pool_list(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    base_pool_count(overrides?: CallOverrides): Promise<BigNumber>;
    fee_receiver(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    callStatic: {
        'find_pool_for_coins(address,address)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        'find_pool_for_coins(address,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, i: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        get_n_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        get_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string, string]>;
        get_underlying_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string[]>;
        get_decimals(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        get_underlying_decimals(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber[]>;
        get_rates(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        get_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        get_underlying_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber[]>;
        get_A(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        get_fees(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        get_admin_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        get_coin_indices(_pool: PromiseOrValue<string>, _from: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, boolean]>;
        add_base_pool(_base_pool: PromiseOrValue<string>, _metapool_implementation: PromiseOrValue<string>, _fee_receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        deploy_metapool(_base_pool: PromiseOrValue<string>, _name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, _coin: PromiseOrValue<string>, _A: PromiseOrValue<BigNumberish>, _fee: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        commit_transfer_ownership(addr: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        accept_transfer_ownership(overrides?: CallOverrides): Promise<void>;
        set_fee_receiver(_base_pool: PromiseOrValue<string>, _fee_receiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        convert_fees(overrides?: CallOverrides): Promise<boolean>;
        admin(overrides?: CallOverrides): Promise<string>;
        future_admin(overrides?: CallOverrides): Promise<string>;
        pool_list(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        pool_count(overrides?: CallOverrides): Promise<BigNumber>;
        base_pool_list(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        base_pool_count(overrides?: CallOverrides): Promise<BigNumber>;
        fee_receiver(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        'BasePoolAdded(address,address)'(base_pool?: null, implementat?: null): BasePoolAddedEventFilter;
        BasePoolAdded(base_pool?: null, implementat?: null): BasePoolAddedEventFilter;
        'MetaPoolDeployed(address,address,uint256,uint256,address)'(coin?: null, base_pool?: null, A?: null, fee?: null, deployer?: null): MetaPoolDeployedEventFilter;
        MetaPoolDeployed(coin?: null, base_pool?: null, A?: null, fee?: null, deployer?: null): MetaPoolDeployedEventFilter;
    };
    estimateGas: {
        'find_pool_for_coins(address,address)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        'find_pool_for_coins(address,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, i: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        get_n_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        get_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        get_underlying_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        get_decimals(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        get_underlying_decimals(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        get_rates(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        get_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        get_underlying_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        get_A(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        get_fees(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        get_admin_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        get_coin_indices(_pool: PromiseOrValue<string>, _from: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        add_base_pool(_base_pool: PromiseOrValue<string>, _metapool_implementation: PromiseOrValue<string>, _fee_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        deploy_metapool(_base_pool: PromiseOrValue<string>, _name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, _coin: PromiseOrValue<string>, _A: PromiseOrValue<BigNumberish>, _fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        commit_transfer_ownership(addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        accept_transfer_ownership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        set_fee_receiver(_base_pool: PromiseOrValue<string>, _fee_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        convert_fees(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        admin(overrides?: CallOverrides): Promise<BigNumber>;
        future_admin(overrides?: CallOverrides): Promise<BigNumber>;
        pool_list(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        pool_count(overrides?: CallOverrides): Promise<BigNumber>;
        base_pool_list(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        base_pool_count(overrides?: CallOverrides): Promise<BigNumber>;
        fee_receiver(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        'find_pool_for_coins(address,address)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        'find_pool_for_coins(address,address,uint256)'(_from: PromiseOrValue<string>, _to: PromiseOrValue<string>, i: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_n_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_underlying_coins(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_decimals(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_underlying_decimals(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_rates(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_underlying_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_A(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_fees(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_admin_balances(_pool: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        get_coin_indices(_pool: PromiseOrValue<string>, _from: PromiseOrValue<string>, _to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        add_base_pool(_base_pool: PromiseOrValue<string>, _metapool_implementation: PromiseOrValue<string>, _fee_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        deploy_metapool(_base_pool: PromiseOrValue<string>, _name: PromiseOrValue<string>, _symbol: PromiseOrValue<string>, _coin: PromiseOrValue<string>, _A: PromiseOrValue<BigNumberish>, _fee: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        commit_transfer_ownership(addr: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        accept_transfer_ownership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        set_fee_receiver(_base_pool: PromiseOrValue<string>, _fee_receiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        convert_fees(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        admin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        future_admin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pool_list(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pool_count(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        base_pool_list(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        base_pool_count(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fee_receiver(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
