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 SablierStreamLegacyInterface extends utils.Interface {
    functions: {
        'getEarnings(address)': FunctionFragment;
        'nextStreamId()': FunctionFragment;
        'getCompoundingStream(uint256)': FunctionFragment;
        'balanceOf(uint256,address)': FunctionFragment;
        'unpause()': FunctionFragment;
        'isPauser(address)': FunctionFragment;
        'paused()': FunctionFragment;
        'cancelStream(uint256)': FunctionFragment;
        'withdrawFromStream(uint256,uint256)': FunctionFragment;
        'initialize()': FunctionFragment;
        'initialize(address)': FunctionFragment;
        'createCompoundingStream(address,uint256,address,uint256,uint256,uint256,uint256)': FunctionFragment;
        'addPauser(address)': FunctionFragment;
        'pause()': FunctionFragment;
        'getStream(uint256)': FunctionFragment;
        'interestOf(uint256,uint256)': FunctionFragment;
        'owner()': FunctionFragment;
        'isOwner()': FunctionFragment;
        'updateFee(uint256)': FunctionFragment;
        'isCompoundingStream(uint256)': FunctionFragment;
        'deltaOf(uint256)': FunctionFragment;
        'takeEarnings(address,uint256)': FunctionFragment;
        'createStream(address,uint256,address,uint256,uint256)': FunctionFragment;
        'cTokenManager()': FunctionFragment;
        'fee()': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'getEarnings' | 'nextStreamId' | 'getCompoundingStream' | 'balanceOf' | 'unpause' | 'isPauser' | 'paused' | 'cancelStream' | 'withdrawFromStream' | 'initialize()' | 'initialize(address)' | 'createCompoundingStream' | 'addPauser' | 'pause' | 'getStream' | 'interestOf' | 'owner' | 'isOwner' | 'updateFee' | 'isCompoundingStream' | 'deltaOf' | 'takeEarnings' | 'createStream' | 'cTokenManager' | 'fee' | 'transferOwnership'): FunctionFragment;
    encodeFunctionData(functionFragment: 'getEarnings', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'nextStreamId', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getCompoundingStream', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'unpause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isPauser', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'cancelStream', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'withdrawFromStream', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'initialize()', values?: undefined): string;
    encodeFunctionData(functionFragment: 'initialize(address)', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'createCompoundingStream', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'addPauser', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'pause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getStream', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'interestOf', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isOwner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'updateFee', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'isCompoundingStream', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'deltaOf', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'takeEarnings', values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'createStream', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'cTokenManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'fee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: 'getEarnings', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nextStreamId', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCompoundingStream', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unpause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isPauser', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cancelStream', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawFromStream', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize()', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize(address)', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'createCompoundingStream', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addPauser', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getStream', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'interestOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isCompoundingStream', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deltaOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'takeEarnings', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'createStream', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cTokenManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    events: {
        'CreateCompoundingStream(uint256,uint256,uint256,uint256)': EventFragment;
        'PayInterest(uint256,uint256,uint256,uint256)': EventFragment;
        'TakeEarnings(address,uint256)': EventFragment;
        'UpdateFee(uint256)': EventFragment;
        'Paused(address)': EventFragment;
        'Unpaused(address)': EventFragment;
        'PauserAdded(address)': EventFragment;
        'PauserRemoved(address)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'CreateStream(uint256,address,address,uint256,address,uint256,uint256)': EventFragment;
        'WithdrawFromStream(uint256,address,uint256)': EventFragment;
        'CancelStream(uint256,address,address,uint256,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'CreateCompoundingStream'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PayInterest'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TakeEarnings'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UpdateFee'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PauserAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'PauserRemoved'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CreateStream'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'WithdrawFromStream'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CancelStream'): EventFragment;
}
export interface CreateCompoundingStreamEventObject {
    streamId: BigNumber;
    exchangeRate: BigNumber;
    senderSharePercentage: BigNumber;
    recipientSharePercentage: BigNumber;
}
export declare type CreateCompoundingStreamEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], CreateCompoundingStreamEventObject>;
export declare type CreateCompoundingStreamEventFilter = TypedEventFilter<CreateCompoundingStreamEvent>;
export interface PayInterestEventObject {
    streamId: BigNumber;
    senderInterest: BigNumber;
    recipientInterest: BigNumber;
    sablierInterest: BigNumber;
}
export declare type PayInterestEvent = TypedEvent<[BigNumber, BigNumber, BigNumber, BigNumber], PayInterestEventObject>;
export declare type PayInterestEventFilter = TypedEventFilter<PayInterestEvent>;
export interface TakeEarningsEventObject {
    tokenAddress: string;
    amount: BigNumber;
}
export declare type TakeEarningsEvent = TypedEvent<[string, BigNumber], TakeEarningsEventObject>;
export declare type TakeEarningsEventFilter = TypedEventFilter<TakeEarningsEvent>;
export interface UpdateFeeEventObject {
    fee: BigNumber;
}
export declare type UpdateFeeEvent = TypedEvent<[BigNumber], UpdateFeeEventObject>;
export declare type UpdateFeeEventFilter = TypedEventFilter<UpdateFeeEvent>;
export interface PausedEventObject {
    account: string;
}
export declare type PausedEvent = TypedEvent<[string], PausedEventObject>;
export declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface UnpausedEventObject {
    account: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface PauserAddedEventObject {
    account: string;
}
export declare type PauserAddedEvent = TypedEvent<[string], PauserAddedEventObject>;
export declare type PauserAddedEventFilter = TypedEventFilter<PauserAddedEvent>;
export interface PauserRemovedEventObject {
    account: string;
}
export declare type PauserRemovedEvent = TypedEvent<[string], PauserRemovedEventObject>;
export declare type PauserRemovedEventFilter = TypedEventFilter<PauserRemovedEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[string, string], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface CreateStreamEventObject {
    streamId: BigNumber;
    sender: string;
    recipient: string;
    deposit: BigNumber;
    tokenAddress: string;
    startTime: BigNumber;
    stopTime: BigNumber;
}
export declare type CreateStreamEvent = TypedEvent<[
    BigNumber,
    string,
    string,
    BigNumber,
    string,
    BigNumber,
    BigNumber
], CreateStreamEventObject>;
export declare type CreateStreamEventFilter = TypedEventFilter<CreateStreamEvent>;
export interface WithdrawFromStreamEventObject {
    streamId: BigNumber;
    recipient: string;
    amount: BigNumber;
}
export declare type WithdrawFromStreamEvent = TypedEvent<[BigNumber, string, BigNumber], WithdrawFromStreamEventObject>;
export declare type WithdrawFromStreamEventFilter = TypedEventFilter<WithdrawFromStreamEvent>;
export interface CancelStreamEventObject {
    streamId: BigNumber;
    sender: string;
    recipient: string;
    senderBalance: BigNumber;
    recipientBalance: BigNumber;
}
export declare type CancelStreamEvent = TypedEvent<[BigNumber, string, string, BigNumber, BigNumber], CancelStreamEventObject>;
export declare type CancelStreamEventFilter = TypedEventFilter<CancelStreamEvent>;
export interface SablierStreamLegacy extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: SablierStreamLegacyInterface;
    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: {
        getEarnings(tokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        nextStreamId(overrides?: CallOverrides): Promise<[BigNumber]>;
        getCompoundingStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            string,
            BigNumber,
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            sender: string;
            recipient: string;
            deposit: BigNumber;
            tokenAddress: string;
            startTime: BigNumber;
            stopTime: BigNumber;
            remainingBalance: BigNumber;
            ratePerSecond: BigNumber;
            exchangeRateInitial: BigNumber;
            senderSharePercentage: BigNumber;
            recipientSharePercentage: BigNumber;
        }>;
        balanceOf(streamId: PromiseOrValue<BigNumberish>, who: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            balance: BigNumber;
        }>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isPauser(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        cancelStream(streamId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawFromStream(streamId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'initialize()'(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        'initialize(address)'(sender: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        createCompoundingStream(recipient: PromiseOrValue<string>, deposit: PromiseOrValue<BigNumberish>, tokenAddress: PromiseOrValue<string>, startTime: PromiseOrValue<BigNumberish>, stopTime: PromiseOrValue<BigNumberish>, senderSharePercentage: PromiseOrValue<BigNumberish>, recipientSharePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addPauser(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            string,
            BigNumber,
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            sender: string;
            recipient: string;
            deposit: BigNumber;
            tokenAddress: string;
            startTime: BigNumber;
            stopTime: BigNumber;
            remainingBalance: BigNumber;
            ratePerSecond: BigNumber;
        }>;
        interestOf(streamId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        isOwner(overrides?: CallOverrides): Promise<[boolean]>;
        updateFee(feePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isCompoundingStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        deltaOf(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            delta: BigNumber;
        }>;
        takeEarnings(tokenAddress: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        createStream(recipient: PromiseOrValue<string>, deposit: PromiseOrValue<BigNumberish>, tokenAddress: PromiseOrValue<string>, startTime: PromiseOrValue<BigNumberish>, stopTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        cTokenManager(overrides?: CallOverrides): Promise<[string]>;
        fee(overrides?: CallOverrides): Promise<[BigNumber] & {
            mantissa: BigNumber;
        }>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    getEarnings(tokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    nextStreamId(overrides?: CallOverrides): Promise<BigNumber>;
    getCompoundingStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        string,
        string,
        BigNumber,
        string,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        sender: string;
        recipient: string;
        deposit: BigNumber;
        tokenAddress: string;
        startTime: BigNumber;
        stopTime: BigNumber;
        remainingBalance: BigNumber;
        ratePerSecond: BigNumber;
        exchangeRateInitial: BigNumber;
        senderSharePercentage: BigNumber;
        recipientSharePercentage: BigNumber;
    }>;
    balanceOf(streamId: PromiseOrValue<BigNumberish>, who: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    unpause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isPauser(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    cancelStream(streamId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawFromStream(streamId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'initialize()'(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    'initialize(address)'(sender: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    createCompoundingStream(recipient: PromiseOrValue<string>, deposit: PromiseOrValue<BigNumberish>, tokenAddress: PromiseOrValue<string>, startTime: PromiseOrValue<BigNumberish>, stopTime: PromiseOrValue<BigNumberish>, senderSharePercentage: PromiseOrValue<BigNumberish>, recipientSharePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addPauser(account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        string,
        string,
        BigNumber,
        string,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        sender: string;
        recipient: string;
        deposit: BigNumber;
        tokenAddress: string;
        startTime: BigNumber;
        stopTime: BigNumber;
        remainingBalance: BigNumber;
        ratePerSecond: BigNumber;
    }>;
    interestOf(streamId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    owner(overrides?: CallOverrides): Promise<string>;
    isOwner(overrides?: CallOverrides): Promise<boolean>;
    updateFee(feePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isCompoundingStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    deltaOf(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    takeEarnings(tokenAddress: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    createStream(recipient: PromiseOrValue<string>, deposit: PromiseOrValue<BigNumberish>, tokenAddress: PromiseOrValue<string>, startTime: PromiseOrValue<BigNumberish>, stopTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    cTokenManager(overrides?: CallOverrides): Promise<string>;
    fee(overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        getEarnings(tokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        nextStreamId(overrides?: CallOverrides): Promise<BigNumber>;
        getCompoundingStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            string,
            BigNumber,
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            sender: string;
            recipient: string;
            deposit: BigNumber;
            tokenAddress: string;
            startTime: BigNumber;
            stopTime: BigNumber;
            remainingBalance: BigNumber;
            ratePerSecond: BigNumber;
            exchangeRateInitial: BigNumber;
            senderSharePercentage: BigNumber;
            recipientSharePercentage: BigNumber;
        }>;
        balanceOf(streamId: PromiseOrValue<BigNumberish>, who: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        unpause(overrides?: CallOverrides): Promise<void>;
        isPauser(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        cancelStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        withdrawFromStream(streamId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        'initialize()'(overrides?: CallOverrides): Promise<void>;
        'initialize(address)'(sender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        createCompoundingStream(recipient: PromiseOrValue<string>, deposit: PromiseOrValue<BigNumberish>, tokenAddress: PromiseOrValue<string>, startTime: PromiseOrValue<BigNumberish>, stopTime: PromiseOrValue<BigNumberish>, senderSharePercentage: PromiseOrValue<BigNumberish>, recipientSharePercentage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        addPauser(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        pause(overrides?: CallOverrides): Promise<void>;
        getStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            string,
            BigNumber,
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            sender: string;
            recipient: string;
            deposit: BigNumber;
            tokenAddress: string;
            startTime: BigNumber;
            stopTime: BigNumber;
            remainingBalance: BigNumber;
            ratePerSecond: BigNumber;
        }>;
        interestOf(streamId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            senderInterest: BigNumber;
            recipientInterest: BigNumber;
            sablierInterest: BigNumber;
        }>;
        owner(overrides?: CallOverrides): Promise<string>;
        isOwner(overrides?: CallOverrides): Promise<boolean>;
        updateFee(feePercentage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        isCompoundingStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        deltaOf(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        takeEarnings(tokenAddress: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        createStream(recipient: PromiseOrValue<string>, deposit: PromiseOrValue<BigNumberish>, tokenAddress: PromiseOrValue<string>, startTime: PromiseOrValue<BigNumberish>, stopTime: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        cTokenManager(overrides?: CallOverrides): Promise<string>;
        fee(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'CreateCompoundingStream(uint256,uint256,uint256,uint256)'(streamId?: PromiseOrValue<BigNumberish> | null, exchangeRate?: null, senderSharePercentage?: null, recipientSharePercentage?: null): CreateCompoundingStreamEventFilter;
        CreateCompoundingStream(streamId?: PromiseOrValue<BigNumberish> | null, exchangeRate?: null, senderSharePercentage?: null, recipientSharePercentage?: null): CreateCompoundingStreamEventFilter;
        'PayInterest(uint256,uint256,uint256,uint256)'(streamId?: PromiseOrValue<BigNumberish> | null, senderInterest?: null, recipientInterest?: null, sablierInterest?: null): PayInterestEventFilter;
        PayInterest(streamId?: PromiseOrValue<BigNumberish> | null, senderInterest?: null, recipientInterest?: null, sablierInterest?: null): PayInterestEventFilter;
        'TakeEarnings(address,uint256)'(tokenAddress?: PromiseOrValue<string> | null, amount?: PromiseOrValue<BigNumberish> | null): TakeEarningsEventFilter;
        TakeEarnings(tokenAddress?: PromiseOrValue<string> | null, amount?: PromiseOrValue<BigNumberish> | null): TakeEarningsEventFilter;
        'UpdateFee(uint256)'(fee?: PromiseOrValue<BigNumberish> | null): UpdateFeeEventFilter;
        UpdateFee(fee?: PromiseOrValue<BigNumberish> | null): UpdateFeeEventFilter;
        'Paused(address)'(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        'Unpaused(address)'(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
        'PauserAdded(address)'(account?: PromiseOrValue<string> | null): PauserAddedEventFilter;
        PauserAdded(account?: PromiseOrValue<string> | null): PauserAddedEventFilter;
        'PauserRemoved(address)'(account?: PromiseOrValue<string> | null): PauserRemovedEventFilter;
        PauserRemoved(account?: PromiseOrValue<string> | null): PauserRemovedEventFilter;
        'OwnershipTransferred(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        'CreateStream(uint256,address,address,uint256,address,uint256,uint256)'(streamId?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, deposit?: null, tokenAddress?: null, startTime?: null, stopTime?: null): CreateStreamEventFilter;
        CreateStream(streamId?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, deposit?: null, tokenAddress?: null, startTime?: null, stopTime?: null): CreateStreamEventFilter;
        'WithdrawFromStream(uint256,address,uint256)'(streamId?: PromiseOrValue<BigNumberish> | null, recipient?: PromiseOrValue<string> | null, amount?: null): WithdrawFromStreamEventFilter;
        WithdrawFromStream(streamId?: PromiseOrValue<BigNumberish> | null, recipient?: PromiseOrValue<string> | null, amount?: null): WithdrawFromStreamEventFilter;
        'CancelStream(uint256,address,address,uint256,uint256)'(streamId?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, senderBalance?: null, recipientBalance?: null): CancelStreamEventFilter;
        CancelStream(streamId?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null, recipient?: PromiseOrValue<string> | null, senderBalance?: null, recipientBalance?: null): CancelStreamEventFilter;
    };
    estimateGas: {
        getEarnings(tokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        nextStreamId(overrides?: CallOverrides): Promise<BigNumber>;
        getCompoundingStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(streamId: PromiseOrValue<BigNumberish>, who: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isPauser(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        cancelStream(streamId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawFromStream(streamId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'initialize()'(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        'initialize(address)'(sender: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        createCompoundingStream(recipient: PromiseOrValue<string>, deposit: PromiseOrValue<BigNumberish>, tokenAddress: PromiseOrValue<string>, startTime: PromiseOrValue<BigNumberish>, stopTime: PromiseOrValue<BigNumberish>, senderSharePercentage: PromiseOrValue<BigNumberish>, recipientSharePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addPauser(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        interestOf(streamId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        isOwner(overrides?: CallOverrides): Promise<BigNumber>;
        updateFee(feePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isCompoundingStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        deltaOf(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        takeEarnings(tokenAddress: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        createStream(recipient: PromiseOrValue<string>, deposit: PromiseOrValue<BigNumberish>, tokenAddress: PromiseOrValue<string>, startTime: PromiseOrValue<BigNumberish>, stopTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        cTokenManager(overrides?: CallOverrides): Promise<BigNumber>;
        fee(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        getEarnings(tokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        nextStreamId(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCompoundingStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOf(streamId: PromiseOrValue<BigNumberish>, who: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isPauser(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        cancelStream(streamId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawFromStream(streamId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'initialize()'(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        'initialize(address)'(sender: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        createCompoundingStream(recipient: PromiseOrValue<string>, deposit: PromiseOrValue<BigNumberish>, tokenAddress: PromiseOrValue<string>, startTime: PromiseOrValue<BigNumberish>, stopTime: PromiseOrValue<BigNumberish>, senderSharePercentage: PromiseOrValue<BigNumberish>, recipientSharePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addPauser(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        interestOf(streamId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        updateFee(feePercentage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isCompoundingStream(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deltaOf(streamId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        takeEarnings(tokenAddress: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        createStream(recipient: PromiseOrValue<string>, deposit: PromiseOrValue<BigNumberish>, tokenAddress: PromiseOrValue<string>, startTime: PromiseOrValue<BigNumberish>, stopTime: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        cTokenManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
