import {Subject} from '../Subject';
import {multicast} from './multicast';
import {ConnectableObservable} from '../observable/ConnectableObservable';
/**
* Returns a ConnectableObservable, which is a variety of Observable that waits until its connect method is called
* before it begins emitting items to those Observers that have subscribed to it.
*
*
*
* @return a ConnectableObservable that upon connection causes the source Observable to emit items to its Observers.
* @method publish
* @owner Observable
*/
export function publish(): ConnectableObservable {
return multicast.call(this, new Subject());
}
export interface PublishSignature {
(): ConnectableObservable;
}