import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../../../common";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
export interface PrimeLiquidityProviderInterface extends utils.Interface {
    functions: {
        "DEFAULT_MAX_DISTRIBUTION_SPEED()": FunctionFragment;
        "acceptOwnership()": FunctionFragment;
        "accessControlManager()": FunctionFragment;
        "accrueTokens(address)": FunctionFragment;
        "blocksOrSecondsPerYear()": FunctionFragment;
        "getBlockNumberOrTimestamp()": FunctionFragment;
        "getEffectiveDistributionSpeed(address)": FunctionFragment;
        "initialize(address,address[],uint256[],uint256[],uint256)": FunctionFragment;
        "initializeTokens(address[])": FunctionFragment;
        "isTimeBased()": FunctionFragment;
        "lastAccruedBlock(address)": FunctionFragment;
        "lastAccruedBlockOrSecond(address)": FunctionFragment;
        "maxLoopsLimit()": FunctionFragment;
        "maxTokenDistributionSpeeds(address)": FunctionFragment;
        "owner()": FunctionFragment;
        "pauseFundsTransfer()": FunctionFragment;
        "paused()": FunctionFragment;
        "pendingOwner()": FunctionFragment;
        "prime()": FunctionFragment;
        "releaseFunds(address)": FunctionFragment;
        "renounceOwnership()": FunctionFragment;
        "resumeFundsTransfer()": FunctionFragment;
        "setAccessControlManager(address)": FunctionFragment;
        "setMaxLoopsLimit(uint256)": FunctionFragment;
        "setMaxTokensDistributionSpeed(address[],uint256[])": FunctionFragment;
        "setPrimeToken(address)": FunctionFragment;
        "setTokensDistributionSpeed(address[],uint256[])": FunctionFragment;
        "sweepToken(address,address,uint256)": FunctionFragment;
        "tokenAmountAccrued(address)": FunctionFragment;
        "tokenDistributionSpeeds(address)": FunctionFragment;
        "transferOwnership(address)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "DEFAULT_MAX_DISTRIBUTION_SPEED" | "acceptOwnership" | "accessControlManager" | "accrueTokens" | "blocksOrSecondsPerYear" | "getBlockNumberOrTimestamp" | "getEffectiveDistributionSpeed" | "initialize" | "initializeTokens" | "isTimeBased" | "lastAccruedBlock" | "lastAccruedBlockOrSecond" | "maxLoopsLimit" | "maxTokenDistributionSpeeds" | "owner" | "pauseFundsTransfer" | "paused" | "pendingOwner" | "prime" | "releaseFunds" | "renounceOwnership" | "resumeFundsTransfer" | "setAccessControlManager" | "setMaxLoopsLimit" | "setMaxTokensDistributionSpeed" | "setPrimeToken" | "setTokensDistributionSpeed" | "sweepToken" | "tokenAmountAccrued" | "tokenDistributionSpeeds" | "transferOwnership"): FunctionFragment;
    encodeFunctionData(functionFragment: "DEFAULT_MAX_DISTRIBUTION_SPEED", values?: undefined): string;
    encodeFunctionData(functionFragment: "acceptOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "accessControlManager", values?: undefined): string;
    encodeFunctionData(functionFragment: "accrueTokens", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "blocksOrSecondsPerYear", values?: undefined): string;
    encodeFunctionData(functionFragment: "getBlockNumberOrTimestamp", values?: undefined): string;
    encodeFunctionData(functionFragment: "getEffectiveDistributionSpeed", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "initialize", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>[],
        PromiseOrValue<BigNumberish>[],
        PromiseOrValue<BigNumberish>[],
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "initializeTokens", values: [PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: "isTimeBased", values?: undefined): string;
    encodeFunctionData(functionFragment: "lastAccruedBlock", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "lastAccruedBlockOrSecond", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "maxLoopsLimit", values?: undefined): string;
    encodeFunctionData(functionFragment: "maxTokenDistributionSpeeds", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "pauseFundsTransfer", values?: undefined): string;
    encodeFunctionData(functionFragment: "paused", values?: undefined): string;
    encodeFunctionData(functionFragment: "pendingOwner", values?: undefined): string;
    encodeFunctionData(functionFragment: "prime", values?: undefined): string;
    encodeFunctionData(functionFragment: "releaseFunds", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "resumeFundsTransfer", values?: undefined): string;
    encodeFunctionData(functionFragment: "setAccessControlManager", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setMaxLoopsLimit", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setMaxTokensDistributionSpeed", values: [PromiseOrValue<string>[], PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: "setPrimeToken", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setTokensDistributionSpeed", values: [PromiseOrValue<string>[], PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: "sweepToken", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "tokenAmountAccrued", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "tokenDistributionSpeeds", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: "DEFAULT_MAX_DISTRIBUTION_SPEED", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "acceptOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "accessControlManager", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "accrueTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "blocksOrSecondsPerYear", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getBlockNumberOrTimestamp", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getEffectiveDistributionSpeed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initializeTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isTimeBased", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lastAccruedBlock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lastAccruedBlockOrSecond", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "maxLoopsLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "maxTokenDistributionSpeeds", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pauseFundsTransfer", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingOwner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "prime", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "releaseFunds", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "resumeFundsTransfer", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setAccessControlManager", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setMaxLoopsLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setMaxTokensDistributionSpeed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPrimeToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setTokensDistributionSpeed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tokenAmountAccrued", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tokenDistributionSpeeds", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    events: {
        "Initialized(uint8)": EventFragment;
        "MaxLoopsLimitUpdated(uint256,uint256)": EventFragment;
        "MaxTokenDistributionSpeedUpdated(address,uint256,uint256)": EventFragment;
        "NewAccessControlManager(address,address)": EventFragment;
        "OwnershipTransferStarted(address,address)": EventFragment;
        "OwnershipTransferred(address,address)": EventFragment;
        "Paused(address)": EventFragment;
        "PrimeTokenUpdated(address,address)": EventFragment;
        "SweepToken(address,address,uint256)": EventFragment;
        "TokenDistributionInitialized(address)": EventFragment;
        "TokenDistributionSpeedUpdated(address,uint256,uint256)": EventFragment;
        "TokenTransferredToPrime(address,uint256)": EventFragment;
        "TokensAccrued(address,uint256)": EventFragment;
        "Unpaused(address)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "MaxLoopsLimitUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "MaxTokenDistributionSpeedUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "NewAccessControlManager"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferStarted"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Paused"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "PrimeTokenUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SweepToken"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TokenDistributionInitialized"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TokenDistributionSpeedUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TokenTransferredToPrime"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TokensAccrued"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Unpaused"): EventFragment;
}
export interface InitializedEventObject {
    version: number;
}
export type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface MaxLoopsLimitUpdatedEventObject {
    oldMaxLoopsLimit: BigNumber;
    newmaxLoopsLimit: BigNumber;
}
export type MaxLoopsLimitUpdatedEvent = TypedEvent<[
    BigNumber,
    BigNumber
], MaxLoopsLimitUpdatedEventObject>;
export type MaxLoopsLimitUpdatedEventFilter = TypedEventFilter<MaxLoopsLimitUpdatedEvent>;
export interface MaxTokenDistributionSpeedUpdatedEventObject {
    token: string;
    oldSpeed: BigNumber;
    newSpeed: BigNumber;
}
export type MaxTokenDistributionSpeedUpdatedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], MaxTokenDistributionSpeedUpdatedEventObject>;
export type MaxTokenDistributionSpeedUpdatedEventFilter = TypedEventFilter<MaxTokenDistributionSpeedUpdatedEvent>;
export interface NewAccessControlManagerEventObject {
    oldAccessControlManager: string;
    newAccessControlManager: string;
}
export type NewAccessControlManagerEvent = TypedEvent<[
    string,
    string
], NewAccessControlManagerEventObject>;
export type NewAccessControlManagerEventFilter = TypedEventFilter<NewAccessControlManagerEvent>;
export interface OwnershipTransferStartedEventObject {
    previousOwner: string;
    newOwner: string;
}
export type OwnershipTransferStartedEvent = TypedEvent<[
    string,
    string
], OwnershipTransferStartedEventObject>;
export type OwnershipTransferStartedEventFilter = TypedEventFilter<OwnershipTransferStartedEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export type OwnershipTransferredEvent = TypedEvent<[
    string,
    string
], OwnershipTransferredEventObject>;
export type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface PausedEventObject {
    account: string;
}
export type PausedEvent = TypedEvent<[string], PausedEventObject>;
export type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface PrimeTokenUpdatedEventObject {
    oldPrimeToken: string;
    newPrimeToken: string;
}
export type PrimeTokenUpdatedEvent = TypedEvent<[
    string,
    string
], PrimeTokenUpdatedEventObject>;
export type PrimeTokenUpdatedEventFilter = TypedEventFilter<PrimeTokenUpdatedEvent>;
export interface SweepTokenEventObject {
    token: string;
    to: string;
    sweepAmount: BigNumber;
}
export type SweepTokenEvent = TypedEvent<[
    string,
    string,
    BigNumber
], SweepTokenEventObject>;
export type SweepTokenEventFilter = TypedEventFilter<SweepTokenEvent>;
export interface TokenDistributionInitializedEventObject {
    token: string;
}
export type TokenDistributionInitializedEvent = TypedEvent<[
    string
], TokenDistributionInitializedEventObject>;
export type TokenDistributionInitializedEventFilter = TypedEventFilter<TokenDistributionInitializedEvent>;
export interface TokenDistributionSpeedUpdatedEventObject {
    token: string;
    oldSpeed: BigNumber;
    newSpeed: BigNumber;
}
export type TokenDistributionSpeedUpdatedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], TokenDistributionSpeedUpdatedEventObject>;
export type TokenDistributionSpeedUpdatedEventFilter = TypedEventFilter<TokenDistributionSpeedUpdatedEvent>;
export interface TokenTransferredToPrimeEventObject {
    token: string;
    amount: BigNumber;
}
export type TokenTransferredToPrimeEvent = TypedEvent<[
    string,
    BigNumber
], TokenTransferredToPrimeEventObject>;
export type TokenTransferredToPrimeEventFilter = TypedEventFilter<TokenTransferredToPrimeEvent>;
export interface TokensAccruedEventObject {
    token: string;
    amount: BigNumber;
}
export type TokensAccruedEvent = TypedEvent<[
    string,
    BigNumber
], TokensAccruedEventObject>;
export type TokensAccruedEventFilter = TypedEventFilter<TokensAccruedEvent>;
export interface UnpausedEventObject {
    account: string;
}
export type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface PrimeLiquidityProvider extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: PrimeLiquidityProviderInterface;
    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: {
        DEFAULT_MAX_DISTRIBUTION_SPEED(overrides?: CallOverrides): Promise<[BigNumber]>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        accessControlManager(overrides?: CallOverrides): Promise<[string]>;
        accrueTokens(token_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<[BigNumber]>;
        getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<[BigNumber]>;
        getEffectiveDistributionSpeed(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        initialize(accessControlManager_: PromiseOrValue<string>, tokens_: PromiseOrValue<string>[], distributionSpeeds_: PromiseOrValue<BigNumberish>[], maxDistributionSpeeds_: PromiseOrValue<BigNumberish>[], loopsLimit_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        initializeTokens(tokens_: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isTimeBased(overrides?: CallOverrides): Promise<[boolean]>;
        lastAccruedBlock(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        lastAccruedBlockOrSecond(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        maxLoopsLimit(overrides?: CallOverrides): Promise<[BigNumber]>;
        maxTokenDistributionSpeeds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        pauseFundsTransfer(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        pendingOwner(overrides?: CallOverrides): Promise<[string]>;
        prime(overrides?: CallOverrides): Promise<[string]>;
        releaseFunds(token_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        resumeFundsTransfer(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setAccessControlManager(accessControlManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMaxLoopsLimit(loopsLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMaxTokensDistributionSpeed(tokens_: PromiseOrValue<string>[], maxDistributionSpeeds_: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPrimeToken(prime_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setTokensDistributionSpeed(tokens_: PromiseOrValue<string>[], distributionSpeeds_: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        sweepToken(token_: PromiseOrValue<string>, to_: PromiseOrValue<string>, amount_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        tokenAmountAccrued(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        tokenDistributionSpeeds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    DEFAULT_MAX_DISTRIBUTION_SPEED(overrides?: CallOverrides): Promise<BigNumber>;
    acceptOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    accessControlManager(overrides?: CallOverrides): Promise<string>;
    accrueTokens(token_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<BigNumber>;
    getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
    getEffectiveDistributionSpeed(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    initialize(accessControlManager_: PromiseOrValue<string>, tokens_: PromiseOrValue<string>[], distributionSpeeds_: PromiseOrValue<BigNumberish>[], maxDistributionSpeeds_: PromiseOrValue<BigNumberish>[], loopsLimit_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    initializeTokens(tokens_: PromiseOrValue<string>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isTimeBased(overrides?: CallOverrides): Promise<boolean>;
    lastAccruedBlock(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    lastAccruedBlockOrSecond(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    maxLoopsLimit(overrides?: CallOverrides): Promise<BigNumber>;
    maxTokenDistributionSpeeds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    owner(overrides?: CallOverrides): Promise<string>;
    pauseFundsTransfer(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    pendingOwner(overrides?: CallOverrides): Promise<string>;
    prime(overrides?: CallOverrides): Promise<string>;
    releaseFunds(token_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    resumeFundsTransfer(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setAccessControlManager(accessControlManager_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMaxLoopsLimit(loopsLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMaxTokensDistributionSpeed(tokens_: PromiseOrValue<string>[], maxDistributionSpeeds_: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPrimeToken(prime_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setTokensDistributionSpeed(tokens_: PromiseOrValue<string>[], distributionSpeeds_: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    sweepToken(token_: PromiseOrValue<string>, to_: PromiseOrValue<string>, amount_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    tokenAmountAccrued(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    tokenDistributionSpeeds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        DEFAULT_MAX_DISTRIBUTION_SPEED(overrides?: CallOverrides): Promise<BigNumber>;
        acceptOwnership(overrides?: CallOverrides): Promise<void>;
        accessControlManager(overrides?: CallOverrides): Promise<string>;
        accrueTokens(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<BigNumber>;
        getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
        getEffectiveDistributionSpeed(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(accessControlManager_: PromiseOrValue<string>, tokens_: PromiseOrValue<string>[], distributionSpeeds_: PromiseOrValue<BigNumberish>[], maxDistributionSpeeds_: PromiseOrValue<BigNumberish>[], loopsLimit_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        initializeTokens(tokens_: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<void>;
        isTimeBased(overrides?: CallOverrides): Promise<boolean>;
        lastAccruedBlock(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lastAccruedBlockOrSecond(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxLoopsLimit(overrides?: CallOverrides): Promise<BigNumber>;
        maxTokenDistributionSpeeds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<string>;
        pauseFundsTransfer(overrides?: CallOverrides): Promise<void>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        pendingOwner(overrides?: CallOverrides): Promise<string>;
        prime(overrides?: CallOverrides): Promise<string>;
        releaseFunds(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        resumeFundsTransfer(overrides?: CallOverrides): Promise<void>;
        setAccessControlManager(accessControlManager_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setMaxLoopsLimit(loopsLimit: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setMaxTokensDistributionSpeed(tokens_: PromiseOrValue<string>[], maxDistributionSpeeds_: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        setPrimeToken(prime_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setTokensDistributionSpeed(tokens_: PromiseOrValue<string>[], distributionSpeeds_: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        sweepToken(token_: PromiseOrValue<string>, to_: PromiseOrValue<string>, amount_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        tokenAmountAccrued(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        tokenDistributionSpeeds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        "Initialized(uint8)"(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        "MaxLoopsLimitUpdated(uint256,uint256)"(oldMaxLoopsLimit?: null, newmaxLoopsLimit?: null): MaxLoopsLimitUpdatedEventFilter;
        MaxLoopsLimitUpdated(oldMaxLoopsLimit?: null, newmaxLoopsLimit?: null): MaxLoopsLimitUpdatedEventFilter;
        "MaxTokenDistributionSpeedUpdated(address,uint256,uint256)"(token?: PromiseOrValue<string> | null, oldSpeed?: null, newSpeed?: null): MaxTokenDistributionSpeedUpdatedEventFilter;
        MaxTokenDistributionSpeedUpdated(token?: PromiseOrValue<string> | null, oldSpeed?: null, newSpeed?: null): MaxTokenDistributionSpeedUpdatedEventFilter;
        "NewAccessControlManager(address,address)"(oldAccessControlManager?: null, newAccessControlManager?: null): NewAccessControlManagerEventFilter;
        NewAccessControlManager(oldAccessControlManager?: null, newAccessControlManager?: null): NewAccessControlManagerEventFilter;
        "OwnershipTransferStarted(address,address)"(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferStartedEventFilter;
        OwnershipTransferStarted(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferStartedEventFilter;
        "OwnershipTransferred(address,address)"(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        "Paused(address)"(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        "PrimeTokenUpdated(address,address)"(oldPrimeToken?: PromiseOrValue<string> | null, newPrimeToken?: PromiseOrValue<string> | null): PrimeTokenUpdatedEventFilter;
        PrimeTokenUpdated(oldPrimeToken?: PromiseOrValue<string> | null, newPrimeToken?: PromiseOrValue<string> | null): PrimeTokenUpdatedEventFilter;
        "SweepToken(address,address,uint256)"(token?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, sweepAmount?: null): SweepTokenEventFilter;
        SweepToken(token?: PromiseOrValue<string> | null, to?: PromiseOrValue<string> | null, sweepAmount?: null): SweepTokenEventFilter;
        "TokenDistributionInitialized(address)"(token?: PromiseOrValue<string> | null): TokenDistributionInitializedEventFilter;
        TokenDistributionInitialized(token?: PromiseOrValue<string> | null): TokenDistributionInitializedEventFilter;
        "TokenDistributionSpeedUpdated(address,uint256,uint256)"(token?: PromiseOrValue<string> | null, oldSpeed?: null, newSpeed?: null): TokenDistributionSpeedUpdatedEventFilter;
        TokenDistributionSpeedUpdated(token?: PromiseOrValue<string> | null, oldSpeed?: null, newSpeed?: null): TokenDistributionSpeedUpdatedEventFilter;
        "TokenTransferredToPrime(address,uint256)"(token?: PromiseOrValue<string> | null, amount?: null): TokenTransferredToPrimeEventFilter;
        TokenTransferredToPrime(token?: PromiseOrValue<string> | null, amount?: null): TokenTransferredToPrimeEventFilter;
        "TokensAccrued(address,uint256)"(token?: PromiseOrValue<string> | null, amount?: null): TokensAccruedEventFilter;
        TokensAccrued(token?: PromiseOrValue<string> | null, amount?: null): TokensAccruedEventFilter;
        "Unpaused(address)"(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
    };
    estimateGas: {
        DEFAULT_MAX_DISTRIBUTION_SPEED(overrides?: CallOverrides): Promise<BigNumber>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        accessControlManager(overrides?: CallOverrides): Promise<BigNumber>;
        accrueTokens(token_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<BigNumber>;
        getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
        getEffectiveDistributionSpeed(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(accessControlManager_: PromiseOrValue<string>, tokens_: PromiseOrValue<string>[], distributionSpeeds_: PromiseOrValue<BigNumberish>[], maxDistributionSpeeds_: PromiseOrValue<BigNumberish>[], loopsLimit_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        initializeTokens(tokens_: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isTimeBased(overrides?: CallOverrides): Promise<BigNumber>;
        lastAccruedBlock(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        lastAccruedBlockOrSecond(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        maxLoopsLimit(overrides?: CallOverrides): Promise<BigNumber>;
        maxTokenDistributionSpeeds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        pauseFundsTransfer(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        pendingOwner(overrides?: CallOverrides): Promise<BigNumber>;
        prime(overrides?: CallOverrides): Promise<BigNumber>;
        releaseFunds(token_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        resumeFundsTransfer(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setAccessControlManager(accessControlManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMaxLoopsLimit(loopsLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMaxTokensDistributionSpeed(tokens_: PromiseOrValue<string>[], maxDistributionSpeeds_: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPrimeToken(prime_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setTokensDistributionSpeed(tokens_: PromiseOrValue<string>[], distributionSpeeds_: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        sweepToken(token_: PromiseOrValue<string>, to_: PromiseOrValue<string>, amount_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        tokenAmountAccrued(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        tokenDistributionSpeeds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        DEFAULT_MAX_DISTRIBUTION_SPEED(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        acceptOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        accessControlManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        accrueTokens(token_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        blocksOrSecondsPerYear(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getBlockNumberOrTimestamp(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getEffectiveDistributionSpeed(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(accessControlManager_: PromiseOrValue<string>, tokens_: PromiseOrValue<string>[], distributionSpeeds_: PromiseOrValue<BigNumberish>[], maxDistributionSpeeds_: PromiseOrValue<BigNumberish>[], loopsLimit_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        initializeTokens(tokens_: PromiseOrValue<string>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isTimeBased(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lastAccruedBlock(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lastAccruedBlockOrSecond(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxLoopsLimit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        maxTokenDistributionSpeeds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pauseFundsTransfer(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        prime(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        releaseFunds(token_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        resumeFundsTransfer(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setAccessControlManager(accessControlManager_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMaxLoopsLimit(loopsLimit: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMaxTokensDistributionSpeed(tokens_: PromiseOrValue<string>[], maxDistributionSpeeds_: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPrimeToken(prime_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setTokensDistributionSpeed(tokens_: PromiseOrValue<string>[], distributionSpeeds_: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        sweepToken(token_: PromiseOrValue<string>, to_: PromiseOrValue<string>, amount_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        tokenAmountAccrued(token_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenDistributionSpeeds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
