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 SynthetixFeePoolInterface extends utils.Interface {
    functions: {
        'CONTRACT_NAME()': FunctionFragment;
        'FEE_ADDRESS()': FunctionFragment;
        'FEE_PERIOD_LENGTH()': FunctionFragment;
        'acceptOwnership()': FunctionFragment;
        'allNetworksDebtSharesSupply()': FunctionFragment;
        'allNetworksSnxBackedDebt()': FunctionFragment;
        'claimFees()': FunctionFragment;
        'claimOnBehalf(address)': FunctionFragment;
        'closeCurrentFeePeriod()': FunctionFragment;
        'closeSecondary(uint256,uint256)': FunctionFragment;
        'effectiveDebtRatioForPeriod(address,uint256)': FunctionFragment;
        'feePeriodDuration()': FunctionFragment;
        'feesAvailable(address)': FunctionFragment;
        'feesBurned(address)': FunctionFragment;
        'feesByPeriod(address)': FunctionFragment;
        'feesToBurn(address)': FunctionFragment;
        'getLastFeeWithdrawal(address)': FunctionFragment;
        'getPenaltyThresholdRatio()': FunctionFragment;
        'importFeePeriod(uint256,uint256,uint256,uint256,uint256,uint256,uint256)': FunctionFragment;
        'isFeesClaimable(address)': FunctionFragment;
        'isResolverCached()': FunctionFragment;
        'issuanceRatio()': FunctionFragment;
        'messageSender()': FunctionFragment;
        'nominateNewOwner(address)': FunctionFragment;
        'nominatedOwner()': FunctionFragment;
        'owner()': FunctionFragment;
        'proxy()': FunctionFragment;
        'rebuildCache()': FunctionFragment;
        'recentFeePeriods(uint256)': FunctionFragment;
        'recordFeePaid(uint256)': FunctionFragment;
        'resolver()': FunctionFragment;
        'resolverAddressesRequired()': FunctionFragment;
        'setMessageSender(address)': FunctionFragment;
        'setProxy(address)': FunctionFragment;
        'setRewardsToDistribute(uint256)': FunctionFragment;
        'setupExpiryTime()': FunctionFragment;
        'targetThreshold()': FunctionFragment;
        'totalFeesAvailable()': FunctionFragment;
        'totalFeesBurned()': FunctionFragment;
        'totalRewardsAvailable()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'CONTRACT_NAME' | 'FEE_ADDRESS' | 'FEE_PERIOD_LENGTH' | 'acceptOwnership' | 'allNetworksDebtSharesSupply' | 'allNetworksSnxBackedDebt' | 'claimFees' | 'claimOnBehalf' | 'closeCurrentFeePeriod' | 'closeSecondary' | 'effectiveDebtRatioForPeriod' | 'feePeriodDuration' | 'feesAvailable' | 'feesBurned' | 'feesByPeriod' | 'feesToBurn' | 'getLastFeeWithdrawal' | 'getPenaltyThresholdRatio' | 'importFeePeriod' | 'isFeesClaimable' | 'isResolverCached' | 'issuanceRatio' | 'messageSender' | 'nominateNewOwner' | 'nominatedOwner' | 'owner' | 'proxy' | 'rebuildCache' | 'recentFeePeriods' | 'recordFeePaid' | 'resolver' | 'resolverAddressesRequired' | 'setMessageSender' | 'setProxy' | 'setRewardsToDistribute' | 'setupExpiryTime' | 'targetThreshold' | 'totalFeesAvailable' | 'totalFeesBurned' | 'totalRewardsAvailable'): FunctionFragment;
    encodeFunctionData(functionFragment: 'CONTRACT_NAME', values?: undefined): string;
    encodeFunctionData(functionFragment: 'FEE_ADDRESS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'FEE_PERIOD_LENGTH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'acceptOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'allNetworksDebtSharesSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'allNetworksSnxBackedDebt', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimFees', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimOnBehalf', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'closeCurrentFeePeriod', values?: undefined): string;
    encodeFunctionData(functionFragment: 'closeSecondary', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'effectiveDebtRatioForPeriod', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'feePeriodDuration', values?: undefined): string;
    encodeFunctionData(functionFragment: 'feesAvailable', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'feesBurned', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'feesByPeriod', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'feesToBurn', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getLastFeeWithdrawal', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getPenaltyThresholdRatio', values?: undefined): string;
    encodeFunctionData(functionFragment: 'importFeePeriod', values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'isFeesClaimable', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isResolverCached', values?: undefined): string;
    encodeFunctionData(functionFragment: 'issuanceRatio', values?: undefined): string;
    encodeFunctionData(functionFragment: 'messageSender', values?: undefined): string;
    encodeFunctionData(functionFragment: 'nominateNewOwner', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'nominatedOwner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'proxy', values?: undefined): string;
    encodeFunctionData(functionFragment: 'rebuildCache', values?: undefined): string;
    encodeFunctionData(functionFragment: 'recentFeePeriods', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'recordFeePaid', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'resolver', values?: undefined): string;
    encodeFunctionData(functionFragment: 'resolverAddressesRequired', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setMessageSender', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setProxy', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'setRewardsToDistribute', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setupExpiryTime', values?: undefined): string;
    encodeFunctionData(functionFragment: 'targetThreshold', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalFeesAvailable', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalFeesBurned', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalRewardsAvailable', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'CONTRACT_NAME', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'FEE_ADDRESS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'FEE_PERIOD_LENGTH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'acceptOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allNetworksDebtSharesSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'allNetworksSnxBackedDebt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimFees', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimOnBehalf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'closeCurrentFeePeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'closeSecondary', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'effectiveDebtRatioForPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feePeriodDuration', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feesAvailable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feesBurned', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feesByPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feesToBurn', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getLastFeeWithdrawal', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPenaltyThresholdRatio', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'importFeePeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isFeesClaimable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isResolverCached', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'issuanceRatio', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'messageSender', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nominateNewOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nominatedOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'proxy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rebuildCache', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'recentFeePeriods', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'recordFeePaid', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'resolver', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'resolverAddressesRequired', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMessageSender', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setProxy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRewardsToDistribute', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setupExpiryTime', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'targetThreshold', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalFeesAvailable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalFeesBurned', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalRewardsAvailable', data: BytesLike): Result;
    events: {
        'CacheUpdated(bytes32,address)': EventFragment;
        'FeePeriodClosed(uint256)': EventFragment;
        'FeesClaimed(address,uint256,uint256)': EventFragment;
        'OwnerChanged(address,address)': EventFragment;
        'OwnerNominated(address)': EventFragment;
        'ProxyUpdated(address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'CacheUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeePeriodClosed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FeesClaimed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnerChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnerNominated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ProxyUpdated'): EventFragment;
}
export interface CacheUpdatedEventObject {
    name: string;
    destination: string;
}
export declare type CacheUpdatedEvent = TypedEvent<[string, string], CacheUpdatedEventObject>;
export declare type CacheUpdatedEventFilter = TypedEventFilter<CacheUpdatedEvent>;
export interface FeePeriodClosedEventObject {
    feePeriodId: BigNumber;
}
export declare type FeePeriodClosedEvent = TypedEvent<[BigNumber], FeePeriodClosedEventObject>;
export declare type FeePeriodClosedEventFilter = TypedEventFilter<FeePeriodClosedEvent>;
export interface FeesClaimedEventObject {
    account: string;
    sUSDAmount: BigNumber;
    snxRewards: BigNumber;
}
export declare type FeesClaimedEvent = TypedEvent<[string, BigNumber, BigNumber], FeesClaimedEventObject>;
export declare type FeesClaimedEventFilter = TypedEventFilter<FeesClaimedEvent>;
export interface OwnerChangedEventObject {
    oldOwner: string;
    newOwner: string;
}
export declare type OwnerChangedEvent = TypedEvent<[string, string], OwnerChangedEventObject>;
export declare type OwnerChangedEventFilter = TypedEventFilter<OwnerChangedEvent>;
export interface OwnerNominatedEventObject {
    newOwner: string;
}
export declare type OwnerNominatedEvent = TypedEvent<[string], OwnerNominatedEventObject>;
export declare type OwnerNominatedEventFilter = TypedEventFilter<OwnerNominatedEvent>;
export interface ProxyUpdatedEventObject {
    proxyAddress: string;
}
export declare type ProxyUpdatedEvent = TypedEvent<[string], ProxyUpdatedEventObject>;
export declare type ProxyUpdatedEventFilter = TypedEventFilter<ProxyUpdatedEvent>;
export interface SynthetixFeePool extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: SynthetixFeePoolInterface;
    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: {
        CONTRACT_NAME(overrides?: CallOverrides): Promise<[string]>;
        FEE_ADDRESS(overrides?: CallOverrides): Promise<[string]>;
        FEE_PERIOD_LENGTH(overrides?: CallOverrides): Promise<[number]>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        allNetworksDebtSharesSupply(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            sharesSupply: BigNumber;
            updatedAt: BigNumber;
        }>;
        allNetworksSnxBackedDebt(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            debt: BigNumber;
            updatedAt: BigNumber;
        }>;
        claimFees(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimOnBehalf(claimingForAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        closeCurrentFeePeriod(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        closeSecondary(allNetworksSnxBackedDebt: PromiseOrValue<BigNumberish>, allNetworksDebtSharesSupply: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        effectiveDebtRatioForPeriod(account: PromiseOrValue<string>, period: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        feePeriodDuration(overrides?: CallOverrides): Promise<[BigNumber]>;
        feesAvailable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        feesBurned(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        feesByPeriod(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            [[BigNumber, BigNumber], [BigNumber, BigNumber]]
        ] & {
            results: [[BigNumber, BigNumber], [BigNumber, BigNumber]];
        }>;
        feesToBurn(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            feesFromPeriod: BigNumber;
        }>;
        getLastFeeWithdrawal(_claimingAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getPenaltyThresholdRatio(overrides?: CallOverrides): Promise<[BigNumber]>;
        importFeePeriod(feePeriodIndex: PromiseOrValue<BigNumberish>, feePeriodId: PromiseOrValue<BigNumberish>, startTime: PromiseOrValue<BigNumberish>, feesToDistribute: PromiseOrValue<BigNumberish>, feesClaimed: PromiseOrValue<BigNumberish>, rewardsToDistribute: PromiseOrValue<BigNumberish>, rewardsClaimed: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isFeesClaimable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean] & {
            feesClaimable: boolean;
        }>;
        isResolverCached(overrides?: CallOverrides): Promise<[boolean]>;
        issuanceRatio(overrides?: CallOverrides): Promise<[BigNumber]>;
        messageSender(overrides?: CallOverrides): Promise<[string]>;
        nominateNewOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        nominatedOwner(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        proxy(overrides?: CallOverrides): Promise<[string]>;
        rebuildCache(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        recentFeePeriods(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            feePeriodId: BigNumber;
            unused: BigNumber;
            startTime: BigNumber;
            feesToDistribute: BigNumber;
            feesClaimed: BigNumber;
            rewardsToDistribute: BigNumber;
            rewardsClaimed: BigNumber;
        }>;
        recordFeePaid(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        resolver(overrides?: CallOverrides): Promise<[string]>;
        resolverAddressesRequired(overrides?: CallOverrides): Promise<[string[]] & {
            addresses: string[];
        }>;
        setMessageSender(sender: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setProxy(_proxy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setRewardsToDistribute(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setupExpiryTime(overrides?: CallOverrides): Promise<[BigNumber]>;
        targetThreshold(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalFeesAvailable(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalFeesBurned(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalRewardsAvailable(overrides?: CallOverrides): Promise<[BigNumber]>;
    };
    CONTRACT_NAME(overrides?: CallOverrides): Promise<string>;
    FEE_ADDRESS(overrides?: CallOverrides): Promise<string>;
    FEE_PERIOD_LENGTH(overrides?: CallOverrides): Promise<number>;
    acceptOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    allNetworksDebtSharesSupply(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        sharesSupply: BigNumber;
        updatedAt: BigNumber;
    }>;
    allNetworksSnxBackedDebt(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        debt: BigNumber;
        updatedAt: BigNumber;
    }>;
    claimFees(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimOnBehalf(claimingForAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    closeCurrentFeePeriod(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    closeSecondary(allNetworksSnxBackedDebt: PromiseOrValue<BigNumberish>, allNetworksDebtSharesSupply: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    effectiveDebtRatioForPeriod(account: PromiseOrValue<string>, period: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    feePeriodDuration(overrides?: CallOverrides): Promise<BigNumber>;
    feesAvailable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    feesBurned(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    feesByPeriod(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[[BigNumber, BigNumber], [BigNumber, BigNumber]]>;
    feesToBurn(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getLastFeeWithdrawal(_claimingAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getPenaltyThresholdRatio(overrides?: CallOverrides): Promise<BigNumber>;
    importFeePeriod(feePeriodIndex: PromiseOrValue<BigNumberish>, feePeriodId: PromiseOrValue<BigNumberish>, startTime: PromiseOrValue<BigNumberish>, feesToDistribute: PromiseOrValue<BigNumberish>, feesClaimed: PromiseOrValue<BigNumberish>, rewardsToDistribute: PromiseOrValue<BigNumberish>, rewardsClaimed: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isFeesClaimable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isResolverCached(overrides?: CallOverrides): Promise<boolean>;
    issuanceRatio(overrides?: CallOverrides): Promise<BigNumber>;
    messageSender(overrides?: CallOverrides): Promise<string>;
    nominateNewOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    nominatedOwner(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    proxy(overrides?: CallOverrides): Promise<string>;
    rebuildCache(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    recentFeePeriods(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        feePeriodId: BigNumber;
        unused: BigNumber;
        startTime: BigNumber;
        feesToDistribute: BigNumber;
        feesClaimed: BigNumber;
        rewardsToDistribute: BigNumber;
        rewardsClaimed: BigNumber;
    }>;
    recordFeePaid(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    resolver(overrides?: CallOverrides): Promise<string>;
    resolverAddressesRequired(overrides?: CallOverrides): Promise<string[]>;
    setMessageSender(sender: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setProxy(_proxy: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setRewardsToDistribute(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setupExpiryTime(overrides?: CallOverrides): Promise<BigNumber>;
    targetThreshold(overrides?: CallOverrides): Promise<BigNumber>;
    totalFeesAvailable(overrides?: CallOverrides): Promise<BigNumber>;
    totalFeesBurned(overrides?: CallOverrides): Promise<BigNumber>;
    totalRewardsAvailable(overrides?: CallOverrides): Promise<BigNumber>;
    callStatic: {
        CONTRACT_NAME(overrides?: CallOverrides): Promise<string>;
        FEE_ADDRESS(overrides?: CallOverrides): Promise<string>;
        FEE_PERIOD_LENGTH(overrides?: CallOverrides): Promise<number>;
        acceptOwnership(overrides?: CallOverrides): Promise<void>;
        allNetworksDebtSharesSupply(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            sharesSupply: BigNumber;
            updatedAt: BigNumber;
        }>;
        allNetworksSnxBackedDebt(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            debt: BigNumber;
            updatedAt: BigNumber;
        }>;
        claimFees(overrides?: CallOverrides): Promise<boolean>;
        claimOnBehalf(claimingForAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        closeCurrentFeePeriod(overrides?: CallOverrides): Promise<void>;
        closeSecondary(allNetworksSnxBackedDebt: PromiseOrValue<BigNumberish>, allNetworksDebtSharesSupply: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        effectiveDebtRatioForPeriod(account: PromiseOrValue<string>, period: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        feePeriodDuration(overrides?: CallOverrides): Promise<BigNumber>;
        feesAvailable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        feesBurned(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        feesByPeriod(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[[BigNumber, BigNumber], [BigNumber, BigNumber]]>;
        feesToBurn(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getLastFeeWithdrawal(_claimingAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getPenaltyThresholdRatio(overrides?: CallOverrides): Promise<BigNumber>;
        importFeePeriod(feePeriodIndex: PromiseOrValue<BigNumberish>, feePeriodId: PromiseOrValue<BigNumberish>, startTime: PromiseOrValue<BigNumberish>, feesToDistribute: PromiseOrValue<BigNumberish>, feesClaimed: PromiseOrValue<BigNumberish>, rewardsToDistribute: PromiseOrValue<BigNumberish>, rewardsClaimed: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        isFeesClaimable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isResolverCached(overrides?: CallOverrides): Promise<boolean>;
        issuanceRatio(overrides?: CallOverrides): Promise<BigNumber>;
        messageSender(overrides?: CallOverrides): Promise<string>;
        nominateNewOwner(_owner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        nominatedOwner(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        proxy(overrides?: CallOverrides): Promise<string>;
        rebuildCache(overrides?: CallOverrides): Promise<void>;
        recentFeePeriods(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            feePeriodId: BigNumber;
            unused: BigNumber;
            startTime: BigNumber;
            feesToDistribute: BigNumber;
            feesClaimed: BigNumber;
            rewardsToDistribute: BigNumber;
            rewardsClaimed: BigNumber;
        }>;
        recordFeePaid(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        resolver(overrides?: CallOverrides): Promise<string>;
        resolverAddressesRequired(overrides?: CallOverrides): Promise<string[]>;
        setMessageSender(sender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setProxy(_proxy: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setRewardsToDistribute(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setupExpiryTime(overrides?: CallOverrides): Promise<BigNumber>;
        targetThreshold(overrides?: CallOverrides): Promise<BigNumber>;
        totalFeesAvailable(overrides?: CallOverrides): Promise<BigNumber>;
        totalFeesBurned(overrides?: CallOverrides): Promise<BigNumber>;
        totalRewardsAvailable(overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'CacheUpdated(bytes32,address)'(name?: null, destination?: null): CacheUpdatedEventFilter;
        CacheUpdated(name?: null, destination?: null): CacheUpdatedEventFilter;
        'FeePeriodClosed(uint256)'(feePeriodId?: null): FeePeriodClosedEventFilter;
        FeePeriodClosed(feePeriodId?: null): FeePeriodClosedEventFilter;
        'FeesClaimed(address,uint256,uint256)'(account?: null, sUSDAmount?: null, snxRewards?: null): FeesClaimedEventFilter;
        FeesClaimed(account?: null, sUSDAmount?: null, snxRewards?: null): FeesClaimedEventFilter;
        'OwnerChanged(address,address)'(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter;
        OwnerChanged(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter;
        'OwnerNominated(address)'(newOwner?: null): OwnerNominatedEventFilter;
        OwnerNominated(newOwner?: null): OwnerNominatedEventFilter;
        'ProxyUpdated(address)'(proxyAddress?: null): ProxyUpdatedEventFilter;
        ProxyUpdated(proxyAddress?: null): ProxyUpdatedEventFilter;
    };
    estimateGas: {
        CONTRACT_NAME(overrides?: CallOverrides): Promise<BigNumber>;
        FEE_ADDRESS(overrides?: CallOverrides): Promise<BigNumber>;
        FEE_PERIOD_LENGTH(overrides?: CallOverrides): Promise<BigNumber>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        allNetworksDebtSharesSupply(overrides?: CallOverrides): Promise<BigNumber>;
        allNetworksSnxBackedDebt(overrides?: CallOverrides): Promise<BigNumber>;
        claimFees(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimOnBehalf(claimingForAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        closeCurrentFeePeriod(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        closeSecondary(allNetworksSnxBackedDebt: PromiseOrValue<BigNumberish>, allNetworksDebtSharesSupply: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        effectiveDebtRatioForPeriod(account: PromiseOrValue<string>, period: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        feePeriodDuration(overrides?: CallOverrides): Promise<BigNumber>;
        feesAvailable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        feesBurned(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        feesByPeriod(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        feesToBurn(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getLastFeeWithdrawal(_claimingAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getPenaltyThresholdRatio(overrides?: CallOverrides): Promise<BigNumber>;
        importFeePeriod(feePeriodIndex: PromiseOrValue<BigNumberish>, feePeriodId: PromiseOrValue<BigNumberish>, startTime: PromiseOrValue<BigNumberish>, feesToDistribute: PromiseOrValue<BigNumberish>, feesClaimed: PromiseOrValue<BigNumberish>, rewardsToDistribute: PromiseOrValue<BigNumberish>, rewardsClaimed: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isFeesClaimable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isResolverCached(overrides?: CallOverrides): Promise<BigNumber>;
        issuanceRatio(overrides?: CallOverrides): Promise<BigNumber>;
        messageSender(overrides?: CallOverrides): Promise<BigNumber>;
        nominateNewOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        nominatedOwner(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        proxy(overrides?: CallOverrides): Promise<BigNumber>;
        rebuildCache(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        recentFeePeriods(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        recordFeePaid(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        resolver(overrides?: CallOverrides): Promise<BigNumber>;
        resolverAddressesRequired(overrides?: CallOverrides): Promise<BigNumber>;
        setMessageSender(sender: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setProxy(_proxy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setRewardsToDistribute(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setupExpiryTime(overrides?: CallOverrides): Promise<BigNumber>;
        targetThreshold(overrides?: CallOverrides): Promise<BigNumber>;
        totalFeesAvailable(overrides?: CallOverrides): Promise<BigNumber>;
        totalFeesBurned(overrides?: CallOverrides): Promise<BigNumber>;
        totalRewardsAvailable(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        CONTRACT_NAME(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        FEE_ADDRESS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        FEE_PERIOD_LENGTH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        allNetworksDebtSharesSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allNetworksSnxBackedDebt(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimFees(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimOnBehalf(claimingForAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        closeCurrentFeePeriod(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        closeSecondary(allNetworksSnxBackedDebt: PromiseOrValue<BigNumberish>, allNetworksDebtSharesSupply: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        effectiveDebtRatioForPeriod(account: PromiseOrValue<string>, period: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        feePeriodDuration(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        feesAvailable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        feesBurned(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        feesByPeriod(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        feesToBurn(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getLastFeeWithdrawal(_claimingAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPenaltyThresholdRatio(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        importFeePeriod(feePeriodIndex: PromiseOrValue<BigNumberish>, feePeriodId: PromiseOrValue<BigNumberish>, startTime: PromiseOrValue<BigNumberish>, feesToDistribute: PromiseOrValue<BigNumberish>, feesClaimed: PromiseOrValue<BigNumberish>, rewardsToDistribute: PromiseOrValue<BigNumberish>, rewardsClaimed: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isFeesClaimable(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isResolverCached(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        issuanceRatio(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        messageSender(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nominateNewOwner(_owner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        nominatedOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        proxy(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        rebuildCache(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        recentFeePeriods(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        recordFeePaid(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        resolver(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        resolverAddressesRequired(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        setMessageSender(sender: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setProxy(_proxy: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setRewardsToDistribute(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setupExpiryTime(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        targetThreshold(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalFeesAvailable(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalFeesBurned(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalRewardsAvailable(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
