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 DfxCurveInterface extends utils.Interface {
    functions: {
        'allowance(address,address)': FunctionFragment;
        'approve(address,uint256)': FunctionFragment;
        'assimilator(address)': FunctionFragment;
        'balanceOf(address)': FunctionFragment;
        'curve()': FunctionFragment;
        'decimals()': FunctionFragment;
        'deposit(uint256,uint256)': FunctionFragment;
        'depositWithWhitelist(uint256,address,uint256,bytes32[],uint256,uint256)': FunctionFragment;
        'derivatives(uint256)': FunctionFragment;
        'emergency()': FunctionFragment;
        'emergencyWithdraw(uint256,uint256)': FunctionFragment;
        'excludeDerivative(address)': FunctionFragment;
        'frozen()': FunctionFragment;
        'isWhitelisted(uint256,address,uint256,bytes32[])': FunctionFragment;
        'liquidity()': FunctionFragment;
        'merkleRoot()': FunctionFragment;
        'name()': FunctionFragment;
        'numeraires(uint256)': FunctionFragment;
        'originSwap(address,address,uint256,uint256,uint256)': FunctionFragment;
        'owner()': FunctionFragment;
        'reserves(uint256)': FunctionFragment;
        'setEmergency(bool)': FunctionFragment;
        'setFrozen(bool)': FunctionFragment;
        'setParams(uint256,uint256,uint256,uint256,uint256)': FunctionFragment;
        'supportsInterface(bytes4)': FunctionFragment;
        'symbol()': FunctionFragment;
        'targetSwap(address,address,uint256,uint256,uint256)': FunctionFragment;
        'totalSupply()': FunctionFragment;
        'transfer(address,uint256)': FunctionFragment;
        'transferFrom(address,address,uint256)': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'turnOffWhitelisting()': FunctionFragment;
        'viewCurve()': FunctionFragment;
        'viewDeposit(uint256)': FunctionFragment;
        'viewOriginSwap(address,address,uint256)': FunctionFragment;
        'viewTargetSwap(address,address,uint256)': FunctionFragment;
        'viewWithdraw(uint256)': FunctionFragment;
        'whitelistedDeposited(address)': FunctionFragment;
        'whitelistingStage()': FunctionFragment;
        'withdraw(uint256,uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'allowance' | 'approve' | 'assimilator' | 'balanceOf' | 'curve' | 'decimals' | 'deposit' | 'depositWithWhitelist' | 'derivatives' | 'emergency' | 'emergencyWithdraw' | 'excludeDerivative' | 'frozen' | 'isWhitelisted' | 'liquidity' | 'merkleRoot' | 'name' | 'numeraires' | 'originSwap' | 'owner' | 'reserves' | 'setEmergency' | 'setFrozen' | 'setParams' | 'supportsInterface' | 'symbol' | 'targetSwap' | 'totalSupply' | 'transfer' | 'transferFrom' | 'transferOwnership' | 'turnOffWhitelisting' | 'viewCurve' | 'viewDeposit' | 'viewOriginSwap' | 'viewTargetSwap' | 'viewWithdraw' | 'whitelistedDeposited' | 'whitelistingStage' | 'withdraw'): FunctionFragment;
    encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'approve', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'assimilator', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'curve', values?: undefined): string;
    encodeFunctionData(functionFragment: 'decimals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'deposit', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'depositWithWhitelist', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>[],
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'derivatives', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'emergency', values?: undefined): string;
    encodeFunctionData(functionFragment: 'emergencyWithdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'excludeDerivative', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'frozen', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isWhitelisted', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>[]
    ]): string;
    encodeFunctionData(functionFragment: 'liquidity', values?: undefined): string;
    encodeFunctionData(functionFragment: 'merkleRoot', values?: undefined): string;
    encodeFunctionData(functionFragment: 'name', values?: undefined): string;
    encodeFunctionData(functionFragment: 'numeraires', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'originSwap', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'reserves', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setEmergency', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setFrozen', values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'setParams', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'symbol', values?: undefined): string;
    encodeFunctionData(functionFragment: 'targetSwap', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transfer', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferFrom', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'turnOffWhitelisting', values?: undefined): string;
    encodeFunctionData(functionFragment: 'viewCurve', values?: undefined): string;
    encodeFunctionData(functionFragment: 'viewDeposit', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'viewOriginSwap', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'viewTargetSwap', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'viewWithdraw', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'whitelistedDeposited', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'whitelistingStage', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'assimilator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'curve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositWithWhitelist', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'derivatives', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'emergency', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'emergencyWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'excludeDerivative', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'frozen', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isWhitelisted', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'liquidity', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'merkleRoot', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'numeraires', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'originSwap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'reserves', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setEmergency', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFrozen', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setParams', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'targetSwap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'turnOffWhitelisting', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'viewCurve', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'viewDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'viewOriginSwap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'viewTargetSwap', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'viewWithdraw', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'whitelistedDeposited', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'whitelistingStage', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    events: {
        'Approval(address,address,uint256)': EventFragment;
        'AssetIncluded(address,address,uint256)': EventFragment;
        'AssimilatorIncluded(address,address,address,address)': EventFragment;
        'EmergencyAlarm(bool)': EventFragment;
        'FrozenSet(bool)': EventFragment;
        'OwnershipTransfered(address,address)': EventFragment;
        'ParametersSet(uint256,uint256,uint256,uint256,uint256)': EventFragment;
        'PartitionRedeemed(address,address,uint256)': EventFragment;
        'Trade(address,address,address,uint256,uint256)': EventFragment;
        'Transfer(address,address,uint256)': EventFragment;
        'WhitelistingStopped()': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AssetIncluded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'AssimilatorIncluded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'EmergencyAlarm'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FrozenSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransfered'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ParametersSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PartitionRedeemed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Trade'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'WhitelistingStopped'): EventFragment;
}
export interface ApprovalEventObject {
    _owner: string;
    spender: string;
    value: BigNumber;
}
export declare type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>;
export declare type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
export interface AssetIncludedEventObject {
    numeraire: string;
    reserve: string;
    weight: BigNumber;
}
export declare type AssetIncludedEvent = TypedEvent<[string, string, BigNumber], AssetIncludedEventObject>;
export declare type AssetIncludedEventFilter = TypedEventFilter<AssetIncludedEvent>;
export interface AssimilatorIncludedEventObject {
    derivative: string;
    numeraire: string;
    reserve: string;
    assimilator: string;
}
export declare type AssimilatorIncludedEvent = TypedEvent<[string, string, string, string], AssimilatorIncludedEventObject>;
export declare type AssimilatorIncludedEventFilter = TypedEventFilter<AssimilatorIncludedEvent>;
export interface EmergencyAlarmEventObject {
    isEmergency: boolean;
}
export declare type EmergencyAlarmEvent = TypedEvent<[boolean], EmergencyAlarmEventObject>;
export declare type EmergencyAlarmEventFilter = TypedEventFilter<EmergencyAlarmEvent>;
export interface FrozenSetEventObject {
    isFrozen: boolean;
}
export declare type FrozenSetEvent = TypedEvent<[boolean], FrozenSetEventObject>;
export declare type FrozenSetEventFilter = TypedEventFilter<FrozenSetEvent>;
export interface OwnershipTransferedEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferedEvent = TypedEvent<[string, string], OwnershipTransferedEventObject>;
export declare type OwnershipTransferedEventFilter = TypedEventFilter<OwnershipTransferedEvent>;
export interface ParametersSetEventObject {
    alpha: BigNumber;
    beta: BigNumber;
    delta: BigNumber;
    epsilon: BigNumber;
    lambda: BigNumber;
}
export declare type ParametersSetEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], ParametersSetEventObject>;
export declare type ParametersSetEventFilter = TypedEventFilter<ParametersSetEvent>;
export interface PartitionRedeemedEventObject {
    token: string;
    redeemer: string;
    value: BigNumber;
}
export declare type PartitionRedeemedEvent = TypedEvent<[string, string, BigNumber], PartitionRedeemedEventObject>;
export declare type PartitionRedeemedEventFilter = TypedEventFilter<PartitionRedeemedEvent>;
export interface TradeEventObject {
    trader: string;
    origin: string;
    target: string;
    originAmount: BigNumber;
    targetAmount: BigNumber;
}
export declare type TradeEvent = TypedEvent<[string, string, string, BigNumber, BigNumber], TradeEventObject>;
export declare type TradeEventFilter = TypedEventFilter<TradeEvent>;
export interface TransferEventObject {
    from: string;
    to: string;
    value: BigNumber;
}
export declare type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>;
export declare type TransferEventFilter = TypedEventFilter<TransferEvent>;
export interface WhitelistingStoppedEventObject {
}
export declare type WhitelistingStoppedEvent = TypedEvent<[], WhitelistingStoppedEventObject>;
export declare type WhitelistingStoppedEventFilter = TypedEventFilter<WhitelistingStoppedEvent>;
export interface DfxCurve extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: DfxCurveInterface;
    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: {
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            allowance_: BigNumber;
        }>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        assimilator(_derivative: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string] & {
            assimilator_: string;
        }>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            balance_: BigNumber;
        }>;
        curve(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            alpha: BigNumber;
            beta: BigNumber;
            delta: BigNumber;
            epsilon: BigNumber;
            lambda: BigNumber;
            totalSupply: BigNumber;
        }>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        deposit(_deposit: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        depositWithWhitelist(index: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, merkleProof: PromiseOrValue<BytesLike>[], _deposit: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        derivatives(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        emergency(overrides?: CallOverrides): Promise<[boolean]>;
        emergencyWithdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        excludeDerivative(_derivative: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        frozen(overrides?: CallOverrides): Promise<[boolean]>;
        isWhitelisted(index: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, merkleProof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<[boolean]>;
        liquidity(overrides?: CallOverrides): Promise<[BigNumber, BigNumber[]] & {
            total_: BigNumber;
            individual_: BigNumber[];
        }>;
        merkleRoot(overrides?: CallOverrides): Promise<[string]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        numeraires(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        originSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _originAmount: PromiseOrValue<BigNumberish>, _minTargetAmount: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        reserves(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        setEmergency(_emergency: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setFrozen(_toFreezeOrNotToFreeze: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setParams(_alpha: PromiseOrValue<BigNumberish>, _beta: PromiseOrValue<BigNumberish>, _feeAtHalt: PromiseOrValue<BigNumberish>, _epsilon: PromiseOrValue<BigNumberish>, _lambda: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        supportsInterface(_interface: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[boolean] & {
            supports_: boolean;
        }>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        targetSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _maxOriginAmount: PromiseOrValue<BigNumberish>, _targetAmount: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber] & {
            totalSupply_: BigNumber;
        }>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferOwnership(_newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        turnOffWhitelisting(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        viewCurve(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            alpha_: BigNumber;
            beta_: BigNumber;
            delta_: BigNumber;
            epsilon_: BigNumber;
            lambda_: BigNumber;
        }>;
        viewDeposit(_deposit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber[]]>;
        viewOriginSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _originAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            targetAmount_: BigNumber;
        }>;
        viewTargetSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _targetAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            originAmount_: BigNumber;
        }>;
        viewWithdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        whitelistedDeposited(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        whitelistingStage(overrides?: CallOverrides): Promise<[boolean]>;
        withdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    assimilator(_derivative: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    curve(overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        alpha: BigNumber;
        beta: BigNumber;
        delta: BigNumber;
        epsilon: BigNumber;
        lambda: BigNumber;
        totalSupply: BigNumber;
    }>;
    decimals(overrides?: CallOverrides): Promise<number>;
    deposit(_deposit: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    depositWithWhitelist(index: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, merkleProof: PromiseOrValue<BytesLike>[], _deposit: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    derivatives(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    emergency(overrides?: CallOverrides): Promise<boolean>;
    emergencyWithdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    excludeDerivative(_derivative: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    frozen(overrides?: CallOverrides): Promise<boolean>;
    isWhitelisted(index: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, merkleProof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<boolean>;
    liquidity(overrides?: CallOverrides): Promise<[BigNumber, BigNumber[]] & {
        total_: BigNumber;
        individual_: BigNumber[];
    }>;
    merkleRoot(overrides?: CallOverrides): Promise<string>;
    name(overrides?: CallOverrides): Promise<string>;
    numeraires(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    originSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _originAmount: PromiseOrValue<BigNumberish>, _minTargetAmount: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    owner(overrides?: CallOverrides): Promise<string>;
    reserves(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    setEmergency(_emergency: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setFrozen(_toFreezeOrNotToFreeze: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setParams(_alpha: PromiseOrValue<BigNumberish>, _beta: PromiseOrValue<BigNumberish>, _feeAtHalt: PromiseOrValue<BigNumberish>, _epsilon: PromiseOrValue<BigNumberish>, _lambda: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    supportsInterface(_interface: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
    symbol(overrides?: CallOverrides): Promise<string>;
    targetSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _maxOriginAmount: PromiseOrValue<BigNumberish>, _targetAmount: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferOwnership(_newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    turnOffWhitelisting(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    viewCurve(overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        alpha_: BigNumber;
        beta_: BigNumber;
        delta_: BigNumber;
        epsilon_: BigNumber;
        lambda_: BigNumber;
    }>;
    viewDeposit(_deposit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber[]]>;
    viewOriginSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _originAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    viewTargetSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _targetAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    viewWithdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
    whitelistedDeposited(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    whitelistingStage(overrides?: CallOverrides): Promise<boolean>;
    withdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        assimilator(_derivative: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        curve(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            alpha: BigNumber;
            beta: BigNumber;
            delta: BigNumber;
            epsilon: BigNumber;
            lambda: BigNumber;
            totalSupply: BigNumber;
        }>;
        decimals(overrides?: CallOverrides): Promise<number>;
        deposit(_deposit: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber[]]>;
        depositWithWhitelist(index: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, merkleProof: PromiseOrValue<BytesLike>[], _deposit: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber[]]>;
        derivatives(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        emergency(overrides?: CallOverrides): Promise<boolean>;
        emergencyWithdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        excludeDerivative(_derivative: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        frozen(overrides?: CallOverrides): Promise<boolean>;
        isWhitelisted(index: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, merkleProof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<boolean>;
        liquidity(overrides?: CallOverrides): Promise<[BigNumber, BigNumber[]] & {
            total_: BigNumber;
            individual_: BigNumber[];
        }>;
        merkleRoot(overrides?: CallOverrides): Promise<string>;
        name(overrides?: CallOverrides): Promise<string>;
        numeraires(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        originSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _originAmount: PromiseOrValue<BigNumberish>, _minTargetAmount: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<string>;
        reserves(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        setEmergency(_emergency: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setFrozen(_toFreezeOrNotToFreeze: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        setParams(_alpha: PromiseOrValue<BigNumberish>, _beta: PromiseOrValue<BigNumberish>, _feeAtHalt: PromiseOrValue<BigNumberish>, _epsilon: PromiseOrValue<BigNumberish>, _lambda: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        supportsInterface(_interface: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<boolean>;
        symbol(overrides?: CallOverrides): Promise<string>;
        targetSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _maxOriginAmount: PromiseOrValue<BigNumberish>, _targetAmount: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        transferOwnership(_newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        turnOffWhitelisting(overrides?: CallOverrides): Promise<void>;
        viewCurve(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            alpha_: BigNumber;
            beta_: BigNumber;
            delta_: BigNumber;
            epsilon_: BigNumber;
            lambda_: BigNumber;
        }>;
        viewDeposit(_deposit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber[]]>;
        viewOriginSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _originAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        viewTargetSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _targetAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        viewWithdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
        whitelistedDeposited(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        whitelistingStage(overrides?: CallOverrides): Promise<boolean>;
        withdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber[]>;
    };
    filters: {
        'Approval(address,address,uint256)'(_owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        Approval(_owner?: PromiseOrValue<string> | null, spender?: PromiseOrValue<string> | null, value?: null): ApprovalEventFilter;
        'AssetIncluded(address,address,uint256)'(numeraire?: PromiseOrValue<string> | null, reserve?: PromiseOrValue<string> | null, weight?: null): AssetIncludedEventFilter;
        AssetIncluded(numeraire?: PromiseOrValue<string> | null, reserve?: PromiseOrValue<string> | null, weight?: null): AssetIncludedEventFilter;
        'AssimilatorIncluded(address,address,address,address)'(derivative?: PromiseOrValue<string> | null, numeraire?: PromiseOrValue<string> | null, reserve?: PromiseOrValue<string> | null, assimilator?: null): AssimilatorIncludedEventFilter;
        AssimilatorIncluded(derivative?: PromiseOrValue<string> | null, numeraire?: PromiseOrValue<string> | null, reserve?: PromiseOrValue<string> | null, assimilator?: null): AssimilatorIncludedEventFilter;
        'EmergencyAlarm(bool)'(isEmergency?: null): EmergencyAlarmEventFilter;
        EmergencyAlarm(isEmergency?: null): EmergencyAlarmEventFilter;
        'FrozenSet(bool)'(isFrozen?: null): FrozenSetEventFilter;
        FrozenSet(isFrozen?: null): FrozenSetEventFilter;
        'OwnershipTransfered(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferedEventFilter;
        OwnershipTransfered(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferedEventFilter;
        'ParametersSet(uint256,uint256,uint256,uint256,uint256)'(alpha?: null, beta?: null, delta?: null, epsilon?: null, lambda?: null): ParametersSetEventFilter;
        ParametersSet(alpha?: null, beta?: null, delta?: null, epsilon?: null, lambda?: null): ParametersSetEventFilter;
        'PartitionRedeemed(address,address,uint256)'(token?: PromiseOrValue<string> | null, redeemer?: PromiseOrValue<string> | null, value?: null): PartitionRedeemedEventFilter;
        PartitionRedeemed(token?: PromiseOrValue<string> | null, redeemer?: PromiseOrValue<string> | null, value?: null): PartitionRedeemedEventFilter;
        'Trade(address,address,address,uint256,uint256)'(trader?: PromiseOrValue<string> | null, origin?: PromiseOrValue<string> | null, target?: PromiseOrValue<string> | null, originAmount?: null, targetAmount?: null): TradeEventFilter;
        Trade(trader?: PromiseOrValue<string> | null, origin?: PromiseOrValue<string> | null, target?: PromiseOrValue<string> | null, originAmount?: null, targetAmount?: null): TradeEventFilter;
        'Transfer(address,address,uint256)'(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, value?: null): TransferEventFilter;
        Transfer(from?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, value?: null): TransferEventFilter;
        'WhitelistingStopped()'(): WhitelistingStoppedEventFilter;
        WhitelistingStopped(): WhitelistingStoppedEventFilter;
    };
    estimateGas: {
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        assimilator(_derivative: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        curve(overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        deposit(_deposit: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        depositWithWhitelist(index: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, merkleProof: PromiseOrValue<BytesLike>[], _deposit: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        derivatives(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        emergency(overrides?: CallOverrides): Promise<BigNumber>;
        emergencyWithdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        excludeDerivative(_derivative: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        frozen(overrides?: CallOverrides): Promise<BigNumber>;
        isWhitelisted(index: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, merkleProof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<BigNumber>;
        liquidity(overrides?: CallOverrides): Promise<BigNumber>;
        merkleRoot(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        numeraires(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        originSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _originAmount: PromiseOrValue<BigNumberish>, _minTargetAmount: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        reserves(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        setEmergency(_emergency: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setFrozen(_toFreezeOrNotToFreeze: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setParams(_alpha: PromiseOrValue<BigNumberish>, _beta: PromiseOrValue<BigNumberish>, _feeAtHalt: PromiseOrValue<BigNumberish>, _epsilon: PromiseOrValue<BigNumberish>, _lambda: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        supportsInterface(_interface: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        targetSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _maxOriginAmount: PromiseOrValue<BigNumberish>, _targetAmount: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferOwnership(_newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        turnOffWhitelisting(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        viewCurve(overrides?: CallOverrides): Promise<BigNumber>;
        viewDeposit(_deposit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        viewOriginSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _originAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        viewTargetSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _targetAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        viewWithdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        whitelistedDeposited(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        whitelistingStage(overrides?: CallOverrides): Promise<BigNumber>;
        withdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        allowance(_owner: PromiseOrValue<string>, _spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        approve(_spender: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        assimilator(_derivative: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOf(_account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        curve(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deposit(_deposit: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        depositWithWhitelist(index: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, merkleProof: PromiseOrValue<BytesLike>[], _deposit: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        derivatives(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        emergency(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        emergencyWithdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        excludeDerivative(_derivative: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        frozen(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isWhitelisted(index: PromiseOrValue<BigNumberish>, account: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, merkleProof: PromiseOrValue<BytesLike>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        liquidity(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        merkleRoot(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        numeraires(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        originSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _originAmount: PromiseOrValue<BigNumberish>, _minTargetAmount: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        reserves(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setEmergency(_emergency: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setFrozen(_toFreezeOrNotToFreeze: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setParams(_alpha: PromiseOrValue<BigNumberish>, _beta: PromiseOrValue<BigNumberish>, _feeAtHalt: PromiseOrValue<BigNumberish>, _epsilon: PromiseOrValue<BigNumberish>, _lambda: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        supportsInterface(_interface: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        targetSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _maxOriginAmount: PromiseOrValue<BigNumberish>, _targetAmount: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transfer(_recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferFrom(_sender: PromiseOrValue<string>, _recipient: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferOwnership(_newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        turnOffWhitelisting(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        viewCurve(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        viewDeposit(_deposit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        viewOriginSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _originAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        viewTargetSwap(_origin: PromiseOrValue<string>, _target: PromiseOrValue<string>, _targetAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        viewWithdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        whitelistedDeposited(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        whitelistingStage(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdraw(_curvesToBurn: PromiseOrValue<BigNumberish>, _deadline: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
