| import { SubscriptionLike, TeardownLogic } from './types'; | 
| /** | 
|  * Represents a disposable resource, such as the execution of an Observable. A | 
|  * Subscription has one important method, `unsubscribe`, that takes no argument | 
|  * and just disposes the resource held by the subscription. | 
|  * | 
|  * Additionally, subscriptions may be grouped together through the `add()` | 
|  * method, which will attach a child Subscription to the current Subscription. | 
|  * When a Subscription is unsubscribed, all its children (and its grandchildren) | 
|  * will be unsubscribed as well. | 
|  * | 
|  * @class Subscription | 
|  */ | 
| export declare class Subscription implements SubscriptionLike { | 
|     /** @nocollapse */ | 
|     static EMPTY: Subscription; | 
|     /** | 
|      * A flag to indicate whether this Subscription has already been unsubscribed. | 
|      * @type {boolean} | 
|      */ | 
|     closed: boolean; | 
|     /** @internal */ | 
|     protected _parentOrParents: Subscription | Subscription[]; | 
|     /** @internal */ | 
|     private _subscriptions; | 
|     /** | 
|      * @param {function(): void} [unsubscribe] A function describing how to | 
|      * perform the disposal of resources when the `unsubscribe` method is called. | 
|      */ | 
|     constructor(unsubscribe?: () => void); | 
|     /** | 
|      * Disposes the resources held by the subscription. May, for instance, cancel | 
|      * an ongoing Observable execution or cancel any other type of work that | 
|      * started when the Subscription was created. | 
|      * @return {void} | 
|      */ | 
|     unsubscribe(): void; | 
|     /** | 
|      * Adds a tear down to be called during the unsubscribe() of this | 
|      * Subscription. Can also be used to add a child subscription. | 
|      * | 
|      * If the tear down being added is a subscription that is already | 
|      * unsubscribed, is the same reference `add` is being called on, or is | 
|      * `Subscription.EMPTY`, it will not be added. | 
|      * | 
|      * If this subscription is already in an `closed` state, the passed | 
|      * tear down logic will be executed immediately. | 
|      * | 
|      * When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed. | 
|      * | 
|      * @param {TeardownLogic} teardown The additional logic to execute on | 
|      * teardown. | 
|      * @return {Subscription} Returns the Subscription used or created to be | 
|      * added to the inner subscriptions list. This Subscription can be used with | 
|      * `remove()` to remove the passed teardown logic from the inner subscriptions | 
|      * list. | 
|      */ | 
|     add(teardown: TeardownLogic): Subscription; | 
|     /** | 
|      * Removes a Subscription from the internal list of subscriptions that will | 
|      * unsubscribe during the unsubscribe process of this Subscription. | 
|      * @param {Subscription} subscription The subscription to remove. | 
|      * @return {void} | 
|      */ | 
|     remove(subscription: Subscription): void; | 
| } |