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 declare namespace ITransformerRegistry {
    type TransformerRegistrationStruct = {
        transformer: PromiseOrValue<string>;
        dependents: PromiseOrValue<string>[];
    };
    type TransformerRegistrationStructOutput = [string, string[]] & {
        transformer: string;
        dependents: string[];
    };
}
export declare namespace ITransformer {
    type UnderlyingAmountStruct = {
        underlying: PromiseOrValue<string>;
        amount: PromiseOrValue<BigNumberish>;
    };
    type UnderlyingAmountStructOutput = [string, BigNumber] & {
        underlying: string;
        amount: BigNumber;
    };
}
export interface MeanFinanceTransformerRegistryInterface extends utils.Interface {
    functions: {
        'calculateNeededToTransformToDependent(address,uint256)': FunctionFragment;
        'calculateNeededToTransformToUnderlying(address,(address,uint256)[])': FunctionFragment;
        'calculateTransformToDependent(address,(address,uint256)[])': FunctionFragment;
        'calculateTransformToUnderlying(address,uint256)': FunctionFragment;
        'getUnderlying(address)': FunctionFragment;
        'registerTransformers((address,address[])[])': FunctionFragment;
        'removeTransformers(address[])': FunctionFragment;
        'transformAllToDependent(address,address,uint256,uint256)': FunctionFragment;
        'transformAllToUnderlying(address,address,(address,uint256)[],uint256)': FunctionFragment;
        'transformToDependent(address,(address,uint256)[],address,uint256,uint256)': FunctionFragment;
        'transformToExpectedDependent(address,uint256,address,(address,uint256)[],uint256)': FunctionFragment;
        'transformToExpectedUnderlying(address,(address,uint256)[],address,uint256,uint256)': FunctionFragment;
        'transformToUnderlying(address,uint256,address,(address,uint256)[],uint256)': FunctionFragment;
        'transformers(address[])': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'calculateNeededToTransformToDependent' | 'calculateNeededToTransformToUnderlying' | 'calculateTransformToDependent' | 'calculateTransformToUnderlying' | 'getUnderlying' | 'registerTransformers' | 'removeTransformers' | 'transformAllToDependent' | 'transformAllToUnderlying' | 'transformToDependent' | 'transformToExpectedDependent' | 'transformToExpectedUnderlying' | 'transformToUnderlying' | 'transformers'): FunctionFragment;
    encodeFunctionData(functionFragment: 'calculateNeededToTransformToDependent', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'calculateNeededToTransformToUnderlying', values: [PromiseOrValue<string>, ITransformer.UnderlyingAmountStruct[]]): string;
    encodeFunctionData(functionFragment: 'calculateTransformToDependent', values: [PromiseOrValue<string>, ITransformer.UnderlyingAmountStruct[]]): string;
    encodeFunctionData(functionFragment: 'calculateTransformToUnderlying', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getUnderlying', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'registerTransformers', values: [ITransformerRegistry.TransformerRegistrationStruct[]]): string;
    encodeFunctionData(functionFragment: 'removeTransformers', values: [PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'transformAllToDependent', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'transformAllToUnderlying', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        ITransformer.UnderlyingAmountStruct[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'transformToDependent', values: [
        PromiseOrValue<string>,
        ITransformer.UnderlyingAmountStruct[],
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'transformToExpectedDependent', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        ITransformer.UnderlyingAmountStruct[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'transformToExpectedUnderlying', values: [
        PromiseOrValue<string>,
        ITransformer.UnderlyingAmountStruct[],
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'transformToUnderlying', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        ITransformer.UnderlyingAmountStruct[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'transformers', values: [PromiseOrValue<string>[]]): string;
    decodeFunctionResult(functionFragment: 'calculateNeededToTransformToDependent', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'calculateNeededToTransformToUnderlying', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'calculateTransformToDependent', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'calculateTransformToUnderlying', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUnderlying', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'registerTransformers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeTransformers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transformAllToDependent', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transformAllToUnderlying', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transformToDependent', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transformToExpectedDependent', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transformToExpectedUnderlying', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transformToUnderlying', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transformers', data: BytesLike): Result;
    events: {
        'TransformersRegistered(tuple[])': EventFragment;
        'TransformersRemoved(address[])': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'TransformersRegistered'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TransformersRemoved'): EventFragment;
}
export interface TransformersRegisteredEventObject {
    registrations: ITransformerRegistry.TransformerRegistrationStructOutput[];
}
export declare type TransformersRegisteredEvent = TypedEvent<[
    ITransformerRegistry.TransformerRegistrationStructOutput[]
], TransformersRegisteredEventObject>;
export declare type TransformersRegisteredEventFilter = TypedEventFilter<TransformersRegisteredEvent>;
export interface TransformersRemovedEventObject {
    dependents: string[];
}
export declare type TransformersRemovedEvent = TypedEvent<[string[]], TransformersRemovedEventObject>;
export declare type TransformersRemovedEventFilter = TypedEventFilter<TransformersRemovedEvent>;
export interface MeanFinanceTransformerRegistry extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: MeanFinanceTransformerRegistryInterface;
    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: {
        calculateNeededToTransformToDependent(dependent: PromiseOrValue<string>, expectedDependent: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            ITransformer.UnderlyingAmountStructOutput[]
        ] & {
            neededUnderlying: ITransformer.UnderlyingAmountStructOutput[];
        }>;
        calculateNeededToTransformToUnderlying(dependent: PromiseOrValue<string>, expectedUnderlying: ITransformer.UnderlyingAmountStruct[], overrides?: CallOverrides): Promise<[BigNumber] & {
            neededDependent: BigNumber;
        }>;
        calculateTransformToDependent(dependent: PromiseOrValue<string>, underlying: ITransformer.UnderlyingAmountStruct[], overrides?: CallOverrides): Promise<[BigNumber] & {
            amountDependent: BigNumber;
        }>;
        calculateTransformToUnderlying(dependent: PromiseOrValue<string>, amountDependent: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[ITransformer.UnderlyingAmountStructOutput[]]>;
        getUnderlying(dependent: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string[]]>;
        registerTransformers(registrations: ITransformerRegistry.TransformerRegistrationStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeTransformers(dependents: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transformAllToDependent(dependent: PromiseOrValue<string>, recipient: PromiseOrValue<string>, minAmountOut: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transformAllToUnderlying(dependent: PromiseOrValue<string>, recipient: PromiseOrValue<string>, minAmountOut: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transformToDependent(dependent: PromiseOrValue<string>, underlying: ITransformer.UnderlyingAmountStruct[], recipient: PromiseOrValue<string>, minAmountOut: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transformToExpectedDependent(dependent: PromiseOrValue<string>, expectedDependent: PromiseOrValue<BigNumberish>, recipient: PromiseOrValue<string>, maxAmountIn: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transformToExpectedUnderlying(dependent: PromiseOrValue<string>, expectedUnderlying: ITransformer.UnderlyingAmountStruct[], recipient: PromiseOrValue<string>, maxAmountIn: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transformToUnderlying(dependent: PromiseOrValue<string>, amountDependent: PromiseOrValue<BigNumberish>, recipient: PromiseOrValue<string>, minAmountOut: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transformers(dependents: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[string[]]>;
    };
    calculateNeededToTransformToDependent(dependent: PromiseOrValue<string>, expectedDependent: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<ITransformer.UnderlyingAmountStructOutput[]>;
    calculateNeededToTransformToUnderlying(dependent: PromiseOrValue<string>, expectedUnderlying: ITransformer.UnderlyingAmountStruct[], overrides?: CallOverrides): Promise<BigNumber>;
    calculateTransformToDependent(dependent: PromiseOrValue<string>, underlying: ITransformer.UnderlyingAmountStruct[], overrides?: CallOverrides): Promise<BigNumber>;
    calculateTransformToUnderlying(dependent: PromiseOrValue<string>, amountDependent: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<ITransformer.UnderlyingAmountStructOutput[]>;
    getUnderlying(dependent: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string[]>;
    registerTransformers(registrations: ITransformerRegistry.TransformerRegistrationStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeTransformers(dependents: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transformAllToDependent(dependent: PromiseOrValue<string>, recipient: PromiseOrValue<string>, minAmountOut: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transformAllToUnderlying(dependent: PromiseOrValue<string>, recipient: PromiseOrValue<string>, minAmountOut: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transformToDependent(dependent: PromiseOrValue<string>, underlying: ITransformer.UnderlyingAmountStruct[], recipient: PromiseOrValue<string>, minAmountOut: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transformToExpectedDependent(dependent: PromiseOrValue<string>, expectedDependent: PromiseOrValue<BigNumberish>, recipient: PromiseOrValue<string>, maxAmountIn: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transformToExpectedUnderlying(dependent: PromiseOrValue<string>, expectedUnderlying: ITransformer.UnderlyingAmountStruct[], recipient: PromiseOrValue<string>, maxAmountIn: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transformToUnderlying(dependent: PromiseOrValue<string>, amountDependent: PromiseOrValue<BigNumberish>, recipient: PromiseOrValue<string>, minAmountOut: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transformers(dependents: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<string[]>;
    callStatic: {
        calculateNeededToTransformToDependent(dependent: PromiseOrValue<string>, expectedDependent: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<ITransformer.UnderlyingAmountStructOutput[]>;
        calculateNeededToTransformToUnderlying(dependent: PromiseOrValue<string>, expectedUnderlying: ITransformer.UnderlyingAmountStruct[], overrides?: CallOverrides): Promise<BigNumber>;
        calculateTransformToDependent(dependent: PromiseOrValue<string>, underlying: ITransformer.UnderlyingAmountStruct[], overrides?: CallOverrides): Promise<BigNumber>;
        calculateTransformToUnderlying(dependent: PromiseOrValue<string>, amountDependent: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<ITransformer.UnderlyingAmountStructOutput[]>;
        getUnderlying(dependent: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string[]>;
        registerTransformers(registrations: ITransformerRegistry.TransformerRegistrationStruct[], overrides?: CallOverrides): Promise<void>;
        removeTransformers(dependents: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        transformAllToDependent(dependent: PromiseOrValue<string>, recipient: PromiseOrValue<string>, minAmountOut: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transformAllToUnderlying(dependent: PromiseOrValue<string>, recipient: PromiseOrValue<string>, minAmountOut: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<ITransformer.UnderlyingAmountStructOutput[]>;
        transformToDependent(dependent: PromiseOrValue<string>, underlying: ITransformer.UnderlyingAmountStruct[], recipient: PromiseOrValue<string>, minAmountOut: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transformToExpectedDependent(dependent: PromiseOrValue<string>, expectedDependent: PromiseOrValue<BigNumberish>, recipient: PromiseOrValue<string>, maxAmountIn: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<ITransformer.UnderlyingAmountStructOutput[]>;
        transformToExpectedUnderlying(dependent: PromiseOrValue<string>, expectedUnderlying: ITransformer.UnderlyingAmountStruct[], recipient: PromiseOrValue<string>, maxAmountIn: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        transformToUnderlying(dependent: PromiseOrValue<string>, amountDependent: PromiseOrValue<BigNumberish>, recipient: PromiseOrValue<string>, minAmountOut: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<ITransformer.UnderlyingAmountStructOutput[]>;
        transformers(dependents: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<string[]>;
    };
    filters: {
        'TransformersRegistered(tuple[])'(registrations?: null): TransformersRegisteredEventFilter;
        TransformersRegistered(registrations?: null): TransformersRegisteredEventFilter;
        'TransformersRemoved(address[])'(dependents?: null): TransformersRemovedEventFilter;
        TransformersRemoved(dependents?: null): TransformersRemovedEventFilter;
    };
    estimateGas: {
        calculateNeededToTransformToDependent(dependent: PromiseOrValue<string>, expectedDependent: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        calculateNeededToTransformToUnderlying(dependent: PromiseOrValue<string>, expectedUnderlying: ITransformer.UnderlyingAmountStruct[], overrides?: CallOverrides): Promise<BigNumber>;
        calculateTransformToDependent(dependent: PromiseOrValue<string>, underlying: ITransformer.UnderlyingAmountStruct[], overrides?: CallOverrides): Promise<BigNumber>;
        calculateTransformToUnderlying(dependent: PromiseOrValue<string>, amountDependent: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getUnderlying(dependent: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        registerTransformers(registrations: ITransformerRegistry.TransformerRegistrationStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeTransformers(dependents: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transformAllToDependent(dependent: PromiseOrValue<string>, recipient: PromiseOrValue<string>, minAmountOut: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transformAllToUnderlying(dependent: PromiseOrValue<string>, recipient: PromiseOrValue<string>, minAmountOut: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transformToDependent(dependent: PromiseOrValue<string>, underlying: ITransformer.UnderlyingAmountStruct[], recipient: PromiseOrValue<string>, minAmountOut: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transformToExpectedDependent(dependent: PromiseOrValue<string>, expectedDependent: PromiseOrValue<BigNumberish>, recipient: PromiseOrValue<string>, maxAmountIn: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transformToExpectedUnderlying(dependent: PromiseOrValue<string>, expectedUnderlying: ITransformer.UnderlyingAmountStruct[], recipient: PromiseOrValue<string>, maxAmountIn: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transformToUnderlying(dependent: PromiseOrValue<string>, amountDependent: PromiseOrValue<BigNumberish>, recipient: PromiseOrValue<string>, minAmountOut: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transformers(dependents: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        calculateNeededToTransformToDependent(dependent: PromiseOrValue<string>, expectedDependent: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calculateNeededToTransformToUnderlying(dependent: PromiseOrValue<string>, expectedUnderlying: ITransformer.UnderlyingAmountStruct[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calculateTransformToDependent(dependent: PromiseOrValue<string>, underlying: ITransformer.UnderlyingAmountStruct[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calculateTransformToUnderlying(dependent: PromiseOrValue<string>, amountDependent: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUnderlying(dependent: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        registerTransformers(registrations: ITransformerRegistry.TransformerRegistrationStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeTransformers(dependents: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transformAllToDependent(dependent: PromiseOrValue<string>, recipient: PromiseOrValue<string>, minAmountOut: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transformAllToUnderlying(dependent: PromiseOrValue<string>, recipient: PromiseOrValue<string>, minAmountOut: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transformToDependent(dependent: PromiseOrValue<string>, underlying: ITransformer.UnderlyingAmountStruct[], recipient: PromiseOrValue<string>, minAmountOut: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transformToExpectedDependent(dependent: PromiseOrValue<string>, expectedDependent: PromiseOrValue<BigNumberish>, recipient: PromiseOrValue<string>, maxAmountIn: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transformToExpectedUnderlying(dependent: PromiseOrValue<string>, expectedUnderlying: ITransformer.UnderlyingAmountStruct[], recipient: PromiseOrValue<string>, maxAmountIn: PromiseOrValue<BigNumberish>, deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transformToUnderlying(dependent: PromiseOrValue<string>, amountDependent: PromiseOrValue<BigNumberish>, recipient: PromiseOrValue<string>, minAmountOut: ITransformer.UnderlyingAmountStruct[], deadline: PromiseOrValue<BigNumberish>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transformers(dependents: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
