import { OnChanges, SimpleChanges } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { SubscribeSink } from './subscribe-sink';
import * as i0 from "@angular/core";
/**
* Extend this when creating a directive (including a component, which is a kind of directive) to gain access to the helpers demonstrated below.
*
* ```ts
* @Component({
* selector: "app-color-text",
* template: `
* {{ color }}
* `,
* changeDetection: ChangeDetectionStrategy.OnPush,
* })
* class ColorTextComponent extends DirectiveSuperclass {
* @Input() color: string;
*
* color$ = this.getInput$("color");
* }
* ```
*/
export declare abstract class DirectiveSuperclass extends SubscribeSink implements OnChanges {
/**
* Emits the set of `@Input()` property names that change during each call to `ngOnChanges()`.
*/
inputChanges$: Subject>;
private onChangesRan$$;
onChangesRan$: Observable;
ngOnChanges(changes: SimpleChanges): void;
/**
* @return an observable of the values for one of this directive's `@Input()` properties
*/
getInput$(key: K): Observable;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}