import { Subject } from 'rxjs/Subject';
import { Subscriber } from 'rxjs/Subscriber';
import { Subscription } from 'rxjs/Subscription';
/**
 * MemorizingSubject acts like a BehaviorSubject, except that it is seeded
 * with no value, calls to getValue() will fail before the first `next` call,
 * and it does not push a value to subscribers if `next` has not been called.
 */
export declare class MemorizingSubject<T> extends Subject<T> {
    protected value: T;
    protected hasSet: boolean;
    hasValue(): boolean;
    next(value: T): void;
    getValue(): T;
    protected _subscribe(subscriber: Subscriber<T>): Subscription;
}
