blob: 5625dca8ce2b353800a0693323e6186e66afb33f [file] [log] [blame]
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { Observable } from 'rxjs';
import { Constructor } from './constructor';
/**
* Mixin that adds an initialized property to a directive which, when subscribed to, will emit a
* value once markInitialized has been called, which should be done during the ngOnInit function.
* If the subscription is made after it has already been marked as initialized, then it will trigger
* an emit immediately.
* @docs-private
*/
export interface HasInitialized {
/** Stream that emits once during the directive/component's ngOnInit. */
initialized: Observable<void>;
/**
* Sets the state as initialized and must be called during ngOnInit to notify subscribers that
* the directive has been initialized.
* @docs-private
*/
_markInitialized: () => void;
}
/** @docs-private */
export declare type HasInitializedCtor = Constructor<HasInitialized>;
/** Mixin to augment a directive with an initialized property that will emits when ngOnInit ends. */
export declare function mixinInitialized<T extends Constructor<{}>>(base: T): HasInitializedCtor & T;