import { ComponentRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
import { ThemePalette } from '@angular/material/core';
import { BehaviorSubject, Observable, Subscription } from 'rxjs';
import { LoaderType } from './loader.model';
import * as i0 from "@angular/core";
export declare class LoaderDirective implements OnDestroy, OnInit, OnChanges {
    private readonly templateRef;
    private readonly viewContainerRef;
    /**
     * Theme palette (primary, accent, warn)
     */
    color: ThemePalette;
    /**
     * Type of loader : spinner or progressbar
     */
    type: LoaderType;
    /**
     * Stroke with (default: 5px)
     */
    strokeWidth: number;
    /**
     * Spinner diameter (default: 60px)
     */
    diameter: number;
    /**
     * Use observable or behavior subject to the loader resolution
     */
    micLoaderObs: Observable<unknown> | BehaviorSubject<unknown>;
    /**
     * Class applied on loader
     */
    class?: string;
    /**
     * Expose observable result through an output method
     */
    resolvedObs: EventEmitter<unknown>;
    subscription: Subscription;
    component: ComponentRef<any>;
    constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    private unsubscribeFromLoader;
    ngOnInit(): void;
    private subscribeToLoader;
    private showLoader;
    private hideLoader;
    static ɵfac: i0.ɵɵFactoryDeclaration<LoaderDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<LoaderDirective, "[micLoaderObs]", never, { "color": { "alias": "color"; "required": false; }; "type": { "alias": "type"; "required": false; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; }; "diameter": { "alias": "diameter"; "required": false; }; "micLoaderObs": { "alias": "micLoaderObs"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "resolvedObs": "resolvedObs"; }, never, never, false, never>;
}
