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 declare namespace IGoodDollarExpansionController {
    type ExchangeExpansionConfigStruct = {
        expansionRate: PromiseOrValue<BigNumberish>;
        expansionFrequency: PromiseOrValue<BigNumberish>;
        lastExpansion: PromiseOrValue<BigNumberish>;
    };
    type ExchangeExpansionConfigStructOutput = [
        BigNumber,
        number,
        number
    ] & {
        expansionRate: BigNumber;
        expansionFrequency: number;
        lastExpansion: number;
    };
}
export interface IGoodDollarExpansionControllerInterface extends utils.Interface {
    functions: {
        "getExpansionConfig(bytes32)": FunctionFragment;
        "initialize(address,address,address,address)": FunctionFragment;
        "mintRewardFromReserveRatio(bytes32,address,uint256)": FunctionFragment;
        "mintRewardFromReserveRatio(bytes32,address,uint256,uint256)": FunctionFragment;
        "mintUBIFromExpansion(bytes32)": FunctionFragment;
        "mintUBIFromInterest(bytes32,uint256)": FunctionFragment;
        "mintUBIFromReserveBalance(bytes32)": FunctionFragment;
        "setAvatar(address)": FunctionFragment;
        "setDistributionHelper(address)": FunctionFragment;
        "setExpansionConfig(bytes32,uint64,uint32)": FunctionFragment;
        "setGoodDollarExchangeProvider(address)": FunctionFragment;
        "setReserve(address)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "getExpansionConfig" | "initialize" | "mintRewardFromReserveRatio(bytes32,address,uint256)" | "mintRewardFromReserveRatio(bytes32,address,uint256,uint256)" | "mintUBIFromExpansion" | "mintUBIFromInterest" | "mintUBIFromReserveBalance" | "setAvatar" | "setDistributionHelper" | "setExpansionConfig" | "setGoodDollarExchangeProvider" | "setReserve"): FunctionFragment;
    encodeFunctionData(functionFragment: "getExpansionConfig", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "initialize", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "mintRewardFromReserveRatio(bytes32,address,uint256)", values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "mintRewardFromReserveRatio(bytes32,address,uint256,uint256)", values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "mintUBIFromExpansion", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "mintUBIFromInterest", values: [PromiseOrValue<BytesLike>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "mintUBIFromReserveBalance", values: [PromiseOrValue<BytesLike>]): string;
    encodeFunctionData(functionFragment: "setAvatar", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setDistributionHelper", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setExpansionConfig", values: [
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "setGoodDollarExchangeProvider", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setReserve", values: [PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: "getExpansionConfig", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintRewardFromReserveRatio(bytes32,address,uint256)", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintRewardFromReserveRatio(bytes32,address,uint256,uint256)", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintUBIFromExpansion", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintUBIFromInterest", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintUBIFromReserveBalance", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setAvatar", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setDistributionHelper", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setExpansionConfig", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setGoodDollarExchangeProvider", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setReserve", data: BytesLike): Result;
    events: {
        "AvatarUpdated(address)": EventFragment;
        "DistributionHelperUpdated(address)": EventFragment;
        "ExpansionConfigSet(bytes32,uint64,uint32)": EventFragment;
        "ExpansionUBIMinted(bytes32,uint256)": EventFragment;
        "GoodDollarExchangeProviderUpdated(address)": EventFragment;
        "InterestUBIMinted(bytes32,uint256)": EventFragment;
        "ReserveUpdated(address)": EventFragment;
        "RewardMinted(bytes32,address,uint256)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "AvatarUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "DistributionHelperUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ExpansionConfigSet"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ExpansionUBIMinted"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "GoodDollarExchangeProviderUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "InterestUBIMinted"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ReserveUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RewardMinted"): EventFragment;
}
export interface AvatarUpdatedEventObject {
    avatar: string;
}
export type AvatarUpdatedEvent = TypedEvent<[string], AvatarUpdatedEventObject>;
export type AvatarUpdatedEventFilter = TypedEventFilter<AvatarUpdatedEvent>;
export interface DistributionHelperUpdatedEventObject {
    distributionHelper: string;
}
export type DistributionHelperUpdatedEvent = TypedEvent<[
    string
], DistributionHelperUpdatedEventObject>;
export type DistributionHelperUpdatedEventFilter = TypedEventFilter<DistributionHelperUpdatedEvent>;
export interface ExpansionConfigSetEventObject {
    exchangeId: string;
    expansionRate: BigNumber;
    expansionFrequency: number;
}
export type ExpansionConfigSetEvent = TypedEvent<[
    string,
    BigNumber,
    number
], ExpansionConfigSetEventObject>;
export type ExpansionConfigSetEventFilter = TypedEventFilter<ExpansionConfigSetEvent>;
export interface ExpansionUBIMintedEventObject {
    exchangeId: string;
    amount: BigNumber;
}
export type ExpansionUBIMintedEvent = TypedEvent<[
    string,
    BigNumber
], ExpansionUBIMintedEventObject>;
export type ExpansionUBIMintedEventFilter = TypedEventFilter<ExpansionUBIMintedEvent>;
export interface GoodDollarExchangeProviderUpdatedEventObject {
    exchangeProvider: string;
}
export type GoodDollarExchangeProviderUpdatedEvent = TypedEvent<[
    string
], GoodDollarExchangeProviderUpdatedEventObject>;
export type GoodDollarExchangeProviderUpdatedEventFilter = TypedEventFilter<GoodDollarExchangeProviderUpdatedEvent>;
export interface InterestUBIMintedEventObject {
    exchangeId: string;
    amount: BigNumber;
}
export type InterestUBIMintedEvent = TypedEvent<[
    string,
    BigNumber
], InterestUBIMintedEventObject>;
export type InterestUBIMintedEventFilter = TypedEventFilter<InterestUBIMintedEvent>;
export interface ReserveUpdatedEventObject {
    reserve: string;
}
export type ReserveUpdatedEvent = TypedEvent<[
    string
], ReserveUpdatedEventObject>;
export type ReserveUpdatedEventFilter = TypedEventFilter<ReserveUpdatedEvent>;
export interface RewardMintedEventObject {
    exchangeId: string;
    to: string;
    amount: BigNumber;
}
export type RewardMintedEvent = TypedEvent<[
    string,
    string,
    BigNumber
], RewardMintedEventObject>;
export type RewardMintedEventFilter = TypedEventFilter<RewardMintedEvent>;
export interface IGoodDollarExpansionController extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: IGoodDollarExpansionControllerInterface;
    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: {
        getExpansionConfig(exchangeId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        initialize(_goodDollarExchangeProvider: PromiseOrValue<string>, _distributionHelper: PromiseOrValue<string>, _reserve: PromiseOrValue<string>, _avatar: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        "mintRewardFromReserveRatio(bytes32,address,uint256)"(exchangeId: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        "mintRewardFromReserveRatio(bytes32,address,uint256,uint256)"(exchangeId: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, maxSlippagePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        mintUBIFromExpansion(exchangeId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        mintUBIFromInterest(exchangeId: PromiseOrValue<BytesLike>, reserveInterest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        mintUBIFromReserveBalance(exchangeId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setAvatar(_avatar: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDistributionHelper(_distributionHelper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setExpansionConfig(exchangeId: PromiseOrValue<BytesLike>, expansionRate: PromiseOrValue<BigNumberish>, expansionFrequency: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setGoodDollarExchangeProvider(_goodDollarExchangeProvider: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setReserve(_reserve: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    getExpansionConfig(exchangeId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    initialize(_goodDollarExchangeProvider: PromiseOrValue<string>, _distributionHelper: PromiseOrValue<string>, _reserve: PromiseOrValue<string>, _avatar: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    "mintRewardFromReserveRatio(bytes32,address,uint256)"(exchangeId: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    "mintRewardFromReserveRatio(bytes32,address,uint256,uint256)"(exchangeId: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, maxSlippagePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    mintUBIFromExpansion(exchangeId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    mintUBIFromInterest(exchangeId: PromiseOrValue<BytesLike>, reserveInterest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    mintUBIFromReserveBalance(exchangeId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setAvatar(_avatar: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDistributionHelper(_distributionHelper: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setExpansionConfig(exchangeId: PromiseOrValue<BytesLike>, expansionRate: PromiseOrValue<BigNumberish>, expansionFrequency: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setGoodDollarExchangeProvider(_goodDollarExchangeProvider: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setReserve(_reserve: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        getExpansionConfig(exchangeId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<IGoodDollarExpansionController.ExchangeExpansionConfigStructOutput>;
        initialize(_goodDollarExchangeProvider: PromiseOrValue<string>, _distributionHelper: PromiseOrValue<string>, _reserve: PromiseOrValue<string>, _avatar: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        "mintRewardFromReserveRatio(bytes32,address,uint256)"(exchangeId: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        "mintRewardFromReserveRatio(bytes32,address,uint256,uint256)"(exchangeId: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, maxSlippagePercentage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        mintUBIFromExpansion(exchangeId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        mintUBIFromInterest(exchangeId: PromiseOrValue<BytesLike>, reserveInterest: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        mintUBIFromReserveBalance(exchangeId: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        setAvatar(_avatar: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setDistributionHelper(_distributionHelper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setExpansionConfig(exchangeId: PromiseOrValue<BytesLike>, expansionRate: PromiseOrValue<BigNumberish>, expansionFrequency: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setGoodDollarExchangeProvider(_goodDollarExchangeProvider: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setReserve(_reserve: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        "AvatarUpdated(address)"(avatar?: PromiseOrValue<string> | null): AvatarUpdatedEventFilter;
        AvatarUpdated(avatar?: PromiseOrValue<string> | null): AvatarUpdatedEventFilter;
        "DistributionHelperUpdated(address)"(distributionHelper?: PromiseOrValue<string> | null): DistributionHelperUpdatedEventFilter;
        DistributionHelperUpdated(distributionHelper?: PromiseOrValue<string> | null): DistributionHelperUpdatedEventFilter;
        "ExpansionConfigSet(bytes32,uint64,uint32)"(exchangeId?: PromiseOrValue<BytesLike> | null, expansionRate?: null, expansionFrequency?: null): ExpansionConfigSetEventFilter;
        ExpansionConfigSet(exchangeId?: PromiseOrValue<BytesLike> | null, expansionRate?: null, expansionFrequency?: null): ExpansionConfigSetEventFilter;
        "ExpansionUBIMinted(bytes32,uint256)"(exchangeId?: PromiseOrValue<BytesLike> | null, amount?: null): ExpansionUBIMintedEventFilter;
        ExpansionUBIMinted(exchangeId?: PromiseOrValue<BytesLike> | null, amount?: null): ExpansionUBIMintedEventFilter;
        "GoodDollarExchangeProviderUpdated(address)"(exchangeProvider?: PromiseOrValue<string> | null): GoodDollarExchangeProviderUpdatedEventFilter;
        GoodDollarExchangeProviderUpdated(exchangeProvider?: PromiseOrValue<string> | null): GoodDollarExchangeProviderUpdatedEventFilter;
        "InterestUBIMinted(bytes32,uint256)"(exchangeId?: PromiseOrValue<BytesLike> | null, amount?: null): InterestUBIMintedEventFilter;
        InterestUBIMinted(exchangeId?: PromiseOrValue<BytesLike> | null, amount?: null): InterestUBIMintedEventFilter;
        "ReserveUpdated(address)"(reserve?: PromiseOrValue<string> | null): ReserveUpdatedEventFilter;
        ReserveUpdated(reserve?: PromiseOrValue<string> | null): ReserveUpdatedEventFilter;
        "RewardMinted(bytes32,address,uint256)"(exchangeId?: PromiseOrValue<BytesLike> | null, to?: PromiseOrValue<string> | null, amount?: null): RewardMintedEventFilter;
        RewardMinted(exchangeId?: PromiseOrValue<BytesLike> | null, to?: PromiseOrValue<string> | null, amount?: null): RewardMintedEventFilter;
    };
    estimateGas: {
        getExpansionConfig(exchangeId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        initialize(_goodDollarExchangeProvider: PromiseOrValue<string>, _distributionHelper: PromiseOrValue<string>, _reserve: PromiseOrValue<string>, _avatar: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        "mintRewardFromReserveRatio(bytes32,address,uint256)"(exchangeId: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        "mintRewardFromReserveRatio(bytes32,address,uint256,uint256)"(exchangeId: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, maxSlippagePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        mintUBIFromExpansion(exchangeId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        mintUBIFromInterest(exchangeId: PromiseOrValue<BytesLike>, reserveInterest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        mintUBIFromReserveBalance(exchangeId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setAvatar(_avatar: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDistributionHelper(_distributionHelper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setExpansionConfig(exchangeId: PromiseOrValue<BytesLike>, expansionRate: PromiseOrValue<BigNumberish>, expansionFrequency: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setGoodDollarExchangeProvider(_goodDollarExchangeProvider: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setReserve(_reserve: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        getExpansionConfig(exchangeId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        initialize(_goodDollarExchangeProvider: PromiseOrValue<string>, _distributionHelper: PromiseOrValue<string>, _reserve: PromiseOrValue<string>, _avatar: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        "mintRewardFromReserveRatio(bytes32,address,uint256)"(exchangeId: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        "mintRewardFromReserveRatio(bytes32,address,uint256,uint256)"(exchangeId: PromiseOrValue<BytesLike>, to: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, maxSlippagePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        mintUBIFromExpansion(exchangeId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        mintUBIFromInterest(exchangeId: PromiseOrValue<BytesLike>, reserveInterest: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        mintUBIFromReserveBalance(exchangeId: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setAvatar(_avatar: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDistributionHelper(_distributionHelper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setExpansionConfig(exchangeId: PromiseOrValue<BytesLike>, expansionRate: PromiseOrValue<BigNumberish>, expansionFrequency: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setGoodDollarExchangeProvider(_goodDollarExchangeProvider: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setReserve(_reserve: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
