import { TemplateRef, ViewContainerRef } from '@angular/core';
import { IfNonNullishContext, IfNullish } from './if-non-nullish.types';
import * as i0 from "@angular/core";
export declare class IfNonNullishDirective<T = unknown> {
    private viewContainerRef;
    private templateRef;
    set ifNonNullish(data: T);
    set ifNonNullishFallback(fallbackTemplate: TemplateRef<unknown> | IfNullish);
    private context;
    private hasNoData;
    private fallbackTemplate;
    private viewState;
    /**
     * Assert the correct type of the expression bound to the `ifNonNullish` input within the template.
     *
     * @see https://angular.io/guide/structural-directives#improving-template-type-checking-for-custom-directives
     */
    static ngTemplateGuard_ifNonNullish<T>(_directive: IfNonNullishDirective<T>, data: T): data is Exclude<T, IfNullish>;
    /**
     * Asserts the correct type of the context for the template that `IfNonNullish` will render.
     *
     * @see https://angular.io/guide/structural-directives#improving-template-type-checking-for-custom-directives
     */
    static ngTemplateContextGuard<T>(_directive: IfNonNullishDirective<T>, context: any): context is IfNonNullishContext<Exclude<T, IfNullish>>;
    constructor(viewContainerRef: ViewContainerRef, templateRef: TemplateRef<IfNonNullishContext<T>>);
    private updateView;
    private switchToRegularView;
    private switchToFallbackView;
    private upsertContext;
    private createRegularView;
    private createFallbackView;
    private clearView;
    static ɵfac: i0.ɵɵFactoryDeclaration<IfNonNullishDirective<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IfNonNullishDirective<any>, "[ifNonNullish]", never, { "ifNonNullish": { "alias": "ifNonNullish"; "required": false; }; "ifNonNullishFallback": { "alias": "ifNonNullishFallback"; "required": false; }; }, {}, never, never, true, never>;
}
