type GenericSubscriberCallback<P extends Array<unknown>> = (...args: P) => void;
type Subscriber<CallbackArguments extends Array<unknown>> = {
    next: GenericSubscriberCallback<CallbackArguments>;
    onComplete: GenericSubscriberCallback<never[]> | undefined;
};
type Subscription = {
    unsubscribe: () => void;
};
/**
 * **Broadcaster Subscription**
 *
 * Manages subscriptions and life cycle of all subscribers.
 *
 * @private
 * @param CallbackArguments type definition of a subscriber callback arguments
 */
export declare class BroadcasterSubscription<CallbackArguments extends Array<unknown>> {
    /**
     * List of all currently active subscribers
     */
    private subscribers;
    /**
     * When shareReplay is true, it will store the latest value
     */
    private buffer?;
    /**
     * If true, it will resend the latest message to a new subscriber
     */
    private shareReplay;
    constructor(shareReplay?: boolean);
    /**
     * Close channel and notify subscribers
     */
    close: () => void;
    /**
     * Push a payload to all subscribers.
     *
     * @param args subscriber callback attributes
     */
    next: GenericSubscriberCallback<CallbackArguments>;
    /**
     * Subscribes to a channel
     *
     * @param callback method called every time new payload occurs.
     * @param complete method called, when channel is closed
     * @returns subscription info object with teardown function
     */
    subscribe: (callback: Subscriber<CallbackArguments>["next"], complete?: Subscriber<CallbackArguments>["onComplete"]) => Subscription;
    /**
     * Unsubscribes from a channel
     *
     * @param callback
     */
    unsubscribe: (callback: GenericSubscriberCallback<CallbackArguments>) => void;
}
export {};
