import { ElementRef, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { MatButton } from '@angular/material/button';
import { PghLoader } from './loader';
import { PghLoaderColor, PghLoaderToggleable, PghLoaderType } from './loader.models';
import * as i0 from "@angular/core";
export declare class PghLoaderDirective implements OnChanges, OnDestroy, PghLoaderToggleable {
    private matButton?;
    loader: import("@angular/core").InputSignal<PghLoaderType | PghLoader | null | undefined>;
    _color: import("@angular/core").InputSignal<import("@angular/material/palette.d-BSSFKjO6").T | null>;
    _disabledWhileLoading: import("@angular/core").InputSignal<boolean | null | undefined>;
    _loaderType: import("@angular/core").InputSignal<PghLoaderType | null | undefined>;
    private elm;
    private _active$Subscription?;
    isActive: boolean;
    loaderType: PghLoaderType;
    loaderColor: PghLoaderColor;
    disabledWhileLoading: boolean;
    isDataLoaded: boolean;
    private static extractLoaderStyleAttributes;
    activate(): void;
    deactivate(): void;
    constructor({ nativeElement: elm }: ElementRef<HTMLElement>, matButton?: MatButton | undefined);
    ngOnChanges(changes: SimpleChanges): void;
    private setLoaderActive;
    private handleDisabling;
    private hasLoaderType;
    private configLoaderAttributes;
    private setupActiveListener;
    ngOnDestroy(): void;
    private getConfig;
    private getLoaderType;
    private getLoaderColor;
    private getDisabledWhileLoading;
    static ɵfac: i0.ɵɵFactoryDeclaration<PghLoaderDirective, [null, { optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PghLoaderDirective, "[pghLoader]", ["pghLoader"], { "loader": { "alias": "pghLoader"; "required": false; "isSignal": true; }; "_color": { "alias": "color"; "required": false; "isSignal": true; }; "_disabledWhileLoading": { "alias": "pghDisabledWhileLoading"; "required": false; "isSignal": true; }; "_loaderType": { "alias": "pghLoaderType"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
}