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 type BasketRangeStruct = {
    bottom: PromiseOrValue<BigNumberish>;
    top: PromiseOrValue<BigNumberish>;
};
export declare type BasketRangeStructOutput = [BigNumber, BigNumber] & {
    bottom: BigNumber;
    top: BigNumber;
};
export interface BasketHandlerInterface extends utils.Interface {
    functions: {
        'MAX_TARGET_AMT()': FunctionFragment;
        'basketsHeldBy(address)': FunctionFragment;
        'disableBasket()': FunctionFragment;
        'fullyCollateralized()': FunctionFragment;
        'getBackupConfig(bytes32)': FunctionFragment;
        'getPrimeBasket()': FunctionFragment;
        'init(address)': FunctionFragment;
        'lotPrice()': FunctionFragment;
        'main()': FunctionFragment;
        'nonce()': FunctionFragment;
        'price()': FunctionFragment;
        'proxiableUUID()': FunctionFragment;
        'quantity(address)': FunctionFragment;
        'quantityUnsafe(address,address)': FunctionFragment;
        'quote(uint192,uint8)': FunctionFragment;
        'refreshBasket()': FunctionFragment;
        'setBackupConfig(bytes32,uint256,address[])': FunctionFragment;
        'setPrimeBasket(address[],uint192[])': FunctionFragment;
        'status()': FunctionFragment;
        'timestamp()': FunctionFragment;
        'upgradeTo(address)': FunctionFragment;
        'upgradeToAndCall(address,bytes)': FunctionFragment;
        'version()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'MAX_TARGET_AMT' | 'basketsHeldBy' | 'disableBasket' | 'fullyCollateralized' | 'getBackupConfig' | 'getPrimeBasket' | 'init' | 'lotPrice' | 'main' | 'nonce' | 'price' | 'proxiableUUID' | 'quantity' | 'quantityUnsafe' | 'quote' | 'refreshBasket' | 'setBackupConfig' | 'setPrimeBasket' | 'status' | 'timestamp' | 'upgradeTo' | 'upgradeToAndCall' | 'version'): FunctionFragment;
    encodeFunctionData(functionFragment: 'MAX_TARGET_AMT', values?: undefined): string;
    encodeFunctionData(functionFragment: 'basketsHeldBy', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'disableBasket', values?: undefined): string;
    encodeFunctionData(functionFragment: 'fullyCollateralized', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getBackupConfig', values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'getPrimeBasket', values?: undefined): string;
    encodeFunctionData(functionFragment: 'init', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'lotPrice', values?: undefined): string;
    encodeFunctionData(functionFragment: 'main', values?: undefined): string;
    encodeFunctionData(functionFragment: 'nonce', values?: undefined): string;
    encodeFunctionData(functionFragment: 'price', values?: undefined): string;
    encodeFunctionData(functionFragment: 'proxiableUUID', values?: undefined): string;
    encodeFunctionData(functionFragment: 'quantity', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'quantityUnsafe', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'quote', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'refreshBasket', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setBackupConfig', values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>, PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'setPrimeBasket', values: [PromiseOrValue<string>[], PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'status', values?: undefined): string;
    encodeFunctionData(functionFragment: 'timestamp', values?: undefined): string;
    encodeFunctionData(functionFragment: 'upgradeTo', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'upgradeToAndCall', values: [PromiseOrValue<string>, PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: 'version', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'MAX_TARGET_AMT', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'basketsHeldBy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'disableBasket', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fullyCollateralized', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getBackupConfig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPrimeBasket', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'init', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lotPrice', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'main', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nonce', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'price', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'proxiableUUID', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'quantity', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'quantityUnsafe', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'quote', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'refreshBasket', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setBackupConfig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setPrimeBasket', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'status', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'timestamp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'upgradeTo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'upgradeToAndCall', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'version', data: BytesLike): Result;
    events: {
        'AdminChanged(address,address)': EventFragment;
        'BackupConfigSet(bytes32,uint256,address[])': EventFragment;
        'BasketSet(uint256,address[],uint192[],bool)': EventFragment;
        'BeaconUpgraded(address)': EventFragment;
        'Initialized(uint8)': EventFragment;
        'PrimeBasketSet(address[],uint192[],bytes32[])': EventFragment;
        'Upgraded(address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'AdminChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BackupConfigSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BasketSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BeaconUpgraded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Initialized'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PrimeBasketSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Upgraded'): EventFragment;
}
export interface AdminChangedEventObject {
    previousAdmin: string;
    newAdmin: string;
}
export declare type AdminChangedEvent = TypedEvent<[string, string], AdminChangedEventObject>;
export declare type AdminChangedEventFilter = TypedEventFilter<AdminChangedEvent>;
export interface BackupConfigSetEventObject {
    targetName: string;
    max: BigNumber;
    erc20s: string[];
}
export declare type BackupConfigSetEvent = TypedEvent<[string, BigNumber, string[]], BackupConfigSetEventObject>;
export declare type BackupConfigSetEventFilter = TypedEventFilter<BackupConfigSetEvent>;
export interface BasketSetEventObject {
    nonce: BigNumber;
    erc20s: string[];
    refAmts: BigNumber[];
    disabled: boolean;
}
export declare type BasketSetEvent = TypedEvent<[BigNumber, string[], BigNumber[], boolean], BasketSetEventObject>;
export declare type BasketSetEventFilter = TypedEventFilter<BasketSetEvent>;
export interface BeaconUpgradedEventObject {
    beacon: string;
}
export declare type BeaconUpgradedEvent = TypedEvent<[string], BeaconUpgradedEventObject>;
export declare type BeaconUpgradedEventFilter = TypedEventFilter<BeaconUpgradedEvent>;
export interface InitializedEventObject {
    version: number;
}
export declare type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export declare type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface PrimeBasketSetEventObject {
    erc20s: string[];
    targetAmts: BigNumber[];
    targetNames: string[];
}
export declare type PrimeBasketSetEvent = TypedEvent<[string[], BigNumber[], string[]], PrimeBasketSetEventObject>;
export declare type PrimeBasketSetEventFilter = TypedEventFilter<PrimeBasketSetEvent>;
export interface UpgradedEventObject {
    implementation: string;
}
export declare type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>;
export declare type UpgradedEventFilter = TypedEventFilter<UpgradedEvent>;
export interface BasketHandler extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: BasketHandlerInterface;
    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: {
        MAX_TARGET_AMT(overrides?: CallOverrides): Promise<[BigNumber]>;
        basketsHeldBy(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BasketRangeStructOutput] & {
            baskets: BasketRangeStructOutput;
        }>;
        disableBasket(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        fullyCollateralized(overrides?: CallOverrides): Promise<[boolean]>;
        getBackupConfig(targetName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string[], BigNumber] & {
            erc20s: string[];
            max: BigNumber;
        }>;
        getPrimeBasket(overrides?: CallOverrides): Promise<[
            string[],
            string[],
            BigNumber[]
        ] & {
            erc20s: string[];
            targetNames: string[];
            targetAmts: BigNumber[];
        }>;
        init(main_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        lotPrice(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            lotLow: BigNumber;
            lotHigh: BigNumber;
        }>;
        main(overrides?: CallOverrides): Promise<[string]>;
        nonce(overrides?: CallOverrides): Promise<[number]>;
        price(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            low: BigNumber;
            high: BigNumber;
        }>;
        proxiableUUID(overrides?: CallOverrides): Promise<[string]>;
        quantity(erc20: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        quantityUnsafe(erc20: PromiseOrValue<string>, asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        quote(amount: PromiseOrValue<BigNumberish>, rounding: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string[], BigNumber[]] & {
            erc20s: string[];
            quantities: BigNumber[];
        }>;
        refreshBasket(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setBackupConfig(targetName: PromiseOrValue<BytesLike>, max: PromiseOrValue<BigNumberish>, erc20s: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPrimeBasket(erc20s: PromiseOrValue<string>[], targetAmts: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        status(overrides?: CallOverrides): Promise<[number] & {
            status_: number;
        }>;
        timestamp(overrides?: CallOverrides): Promise<[number]>;
        upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        version(overrides?: CallOverrides): Promise<[string]>;
    };
    MAX_TARGET_AMT(overrides?: CallOverrides): Promise<BigNumber>;
    basketsHeldBy(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BasketRangeStructOutput>;
    disableBasket(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    fullyCollateralized(overrides?: CallOverrides): Promise<boolean>;
    getBackupConfig(targetName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string[], BigNumber] & {
        erc20s: string[];
        max: BigNumber;
    }>;
    getPrimeBasket(overrides?: CallOverrides): Promise<[
        string[],
        string[],
        BigNumber[]
    ] & {
        erc20s: string[];
        targetNames: string[];
        targetAmts: BigNumber[];
    }>;
    init(main_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    lotPrice(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        lotLow: BigNumber;
        lotHigh: BigNumber;
    }>;
    main(overrides?: CallOverrides): Promise<string>;
    nonce(overrides?: CallOverrides): Promise<number>;
    price(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        low: BigNumber;
        high: BigNumber;
    }>;
    proxiableUUID(overrides?: CallOverrides): Promise<string>;
    quantity(erc20: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    quantityUnsafe(erc20: PromiseOrValue<string>, asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    quote(amount: PromiseOrValue<BigNumberish>, rounding: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string[], BigNumber[]] & {
        erc20s: string[];
        quantities: BigNumber[];
    }>;
    refreshBasket(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setBackupConfig(targetName: PromiseOrValue<BytesLike>, max: PromiseOrValue<BigNumberish>, erc20s: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPrimeBasket(erc20s: PromiseOrValue<string>[], targetAmts: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    status(overrides?: CallOverrides): Promise<number>;
    timestamp(overrides?: CallOverrides): Promise<number>;
    upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    version(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        MAX_TARGET_AMT(overrides?: CallOverrides): Promise<BigNumber>;
        basketsHeldBy(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BasketRangeStructOutput>;
        disableBasket(overrides?: CallOverrides): Promise<void>;
        fullyCollateralized(overrides?: CallOverrides): Promise<boolean>;
        getBackupConfig(targetName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[string[], BigNumber] & {
            erc20s: string[];
            max: BigNumber;
        }>;
        getPrimeBasket(overrides?: CallOverrides): Promise<[
            string[],
            string[],
            BigNumber[]
        ] & {
            erc20s: string[];
            targetNames: string[];
            targetAmts: BigNumber[];
        }>;
        init(main_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        lotPrice(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            lotLow: BigNumber;
            lotHigh: BigNumber;
        }>;
        main(overrides?: CallOverrides): Promise<string>;
        nonce(overrides?: CallOverrides): Promise<number>;
        price(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            low: BigNumber;
            high: BigNumber;
        }>;
        proxiableUUID(overrides?: CallOverrides): Promise<string>;
        quantity(erc20: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        quantityUnsafe(erc20: PromiseOrValue<string>, asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        quote(amount: PromiseOrValue<BigNumberish>, rounding: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string[], BigNumber[]] & {
            erc20s: string[];
            quantities: BigNumber[];
        }>;
        refreshBasket(overrides?: CallOverrides): Promise<void>;
        setBackupConfig(targetName: PromiseOrValue<BytesLike>, max: PromiseOrValue<BigNumberish>, erc20s: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        setPrimeBasket(erc20s: PromiseOrValue<string>[], targetAmts: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        status(overrides?: CallOverrides): Promise<number>;
        timestamp(overrides?: CallOverrides): Promise<number>;
        upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        version(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        'AdminChanged(address,address)'(previousAdmin?: null, newAdmin?: null): AdminChangedEventFilter;
        AdminChanged(previousAdmin?: null, newAdmin?: null): AdminChangedEventFilter;
        'BackupConfigSet(bytes32,uint256,address[])'(targetName?: PromiseOrValue<BytesLike> | null, max?: PromiseOrValue<BigNumberish> | null, erc20s?: null): BackupConfigSetEventFilter;
        BackupConfigSet(targetName?: PromiseOrValue<BytesLike> | null, max?: PromiseOrValue<BigNumberish> | null, erc20s?: null): BackupConfigSetEventFilter;
        'BasketSet(uint256,address[],uint192[],bool)'(nonce?: PromiseOrValue<BigNumberish> | null, erc20s?: null, refAmts?: null, disabled?: null): BasketSetEventFilter;
        BasketSet(nonce?: PromiseOrValue<BigNumberish> | null, erc20s?: null, refAmts?: null, disabled?: null): BasketSetEventFilter;
        'BeaconUpgraded(address)'(beacon?: PromiseOrValue<string> | null): BeaconUpgradedEventFilter;
        BeaconUpgraded(beacon?: PromiseOrValue<string> | null): BeaconUpgradedEventFilter;
        'Initialized(uint8)'(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        'PrimeBasketSet(address[],uint192[],bytes32[])'(erc20s?: null, targetAmts?: null, targetNames?: null): PrimeBasketSetEventFilter;
        PrimeBasketSet(erc20s?: null, targetAmts?: null, targetNames?: null): PrimeBasketSetEventFilter;
        'Upgraded(address)'(implementation?: PromiseOrValue<string> | null): UpgradedEventFilter;
        Upgraded(implementation?: PromiseOrValue<string> | null): UpgradedEventFilter;
    };
    estimateGas: {
        MAX_TARGET_AMT(overrides?: CallOverrides): Promise<BigNumber>;
        basketsHeldBy(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        disableBasket(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        fullyCollateralized(overrides?: CallOverrides): Promise<BigNumber>;
        getBackupConfig(targetName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        getPrimeBasket(overrides?: CallOverrides): Promise<BigNumber>;
        init(main_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        lotPrice(overrides?: CallOverrides): Promise<BigNumber>;
        main(overrides?: CallOverrides): Promise<BigNumber>;
        nonce(overrides?: CallOverrides): Promise<BigNumber>;
        price(overrides?: CallOverrides): Promise<BigNumber>;
        proxiableUUID(overrides?: CallOverrides): Promise<BigNumber>;
        quantity(erc20: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        quantityUnsafe(erc20: PromiseOrValue<string>, asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        quote(amount: PromiseOrValue<BigNumberish>, rounding: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        refreshBasket(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setBackupConfig(targetName: PromiseOrValue<BytesLike>, max: PromiseOrValue<BigNumberish>, erc20s: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPrimeBasket(erc20s: PromiseOrValue<string>[], targetAmts: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        status(overrides?: CallOverrides): Promise<BigNumber>;
        timestamp(overrides?: CallOverrides): Promise<BigNumber>;
        upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        version(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        MAX_TARGET_AMT(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        basketsHeldBy(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        disableBasket(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        fullyCollateralized(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getBackupConfig(targetName: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPrimeBasket(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        init(main_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        lotPrice(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        main(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nonce(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        price(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        proxiableUUID(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        quantity(erc20: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        quantityUnsafe(erc20: PromiseOrValue<string>, asset: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        quote(amount: PromiseOrValue<BigNumberish>, rounding: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        refreshBasket(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setBackupConfig(targetName: PromiseOrValue<BytesLike>, max: PromiseOrValue<BigNumberish>, erc20s: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPrimeBasket(erc20s: PromiseOrValue<string>[], targetAmts: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        status(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        timestamp(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        upgradeTo(newImplementation: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        upgradeToAndCall(newImplementation: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: PayableOverrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        version(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
