import { DoCheck, ViewContainerRef, TemplateRef } from "@angular/core";
import { BsInstanceOfContext } from "../interfaces/instance-of-context";
import { AbstractType } from "../types/abstract.type";
import { BsInstanceOfDirective } from "./instanceof.directive";
import * as i0 from "@angular/core";
export declare class BsInstanceofCaseDirective<T> implements DoCheck {
    private bsInstanceof;
    bsInstanceofCase: AbstractType<T>;
    private _view;
    constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<BsInstanceOfContext<T>>, bsInstanceof: BsInstanceOfDirective);
    /**
     * Asserts the correct type of the context for the template that `InstanceofCaseDirective` will render.
     *
     * The presence of this method is a signal to the Ivy template type-check compiler that the
     * `InstanceofCaseDirective` structural directive renders its template with a specific context type.
     * Magic happens here!
     */
    static ngTemplateContextGuard<T>(dir: BsInstanceofCaseDirective<T>, ctx: any): ctx is BsInstanceOfContext<Exclude<T, false | 0 | '' | null | undefined>>;
    ngDoCheck(): void;
    throwError(directiveName: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BsInstanceofCaseDirective<any>, [null, null, { optional: true; host: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<BsInstanceofCaseDirective<any>, "[bsInstanceofCase]", never, { "bsInstanceofCase": "bsInstanceofCase"; }, {}, never, never, false, never>;
}
