import { OnDestroy, Signal } from '@angular/core';
import { AbstractSubscriptionDirective, type DbxActionWorkProgress, type DbxButtonWorking } from '@dereekb/dbx-core';
import { type Maybe } from '@dereekb/util';
import { DbxProgressButtonConfig } from './button.progress.config';
import { type ProgressSpinnerMode } from '@angular/material/progress-spinner';
import * as i0 from "@angular/core";
export declare abstract class AbstractProgressButtonDirective extends AbstractSubscriptionDirective implements OnDestroy {
    private readonly globalConfig;
    readonly btnClick: import("@angular/core").OutputEmitterRef<MouseEvent>;
    readonly config: import("@angular/core").InputSignal<Maybe<DbxProgressButtonConfig>>;
    readonly buttonId: import("@angular/core").InputSignal<Maybe<string>>;
    readonly working: import("@angular/core").InputSignal<Maybe<import("@dereekb/dbx-core").DbxActionWorkOrWorkProgress>>;
    readonly disabled: import("@angular/core").InputSignal<Maybe<boolean>>;
    readonly globalOptionsSignal: Signal<Maybe<DbxProgressButtonConfig>>;
    readonly configSignal: Signal<Maybe<DbxProgressButtonConfig>>;
    readonly baseCssClassSignal: Signal<string[]>;
    readonly baseCssClasses$: import("rxjs").Observable<string[]>;
    readonly workingProgressSignal: Signal<DbxButtonWorking>;
    readonly isWorkingSignal: Signal<boolean>;
    readonly workingValueSignal: Signal<Maybe<DbxActionWorkProgress>>;
    readonly modeSignal: Signal<ProgressSpinnerMode>;
    readonly disabledSignal: Signal<Maybe<boolean>>;
    readonly buttonTypeAttributeSignal: Signal<Maybe<string>>;
    readonly buttonDisabledSignal: Signal<Maybe<boolean>>;
    readonly showProgressSignal: Signal<boolean>;
    handleClick(event: MouseEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractProgressButtonDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractProgressButtonDirective, never, never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "buttonId": { "alias": "buttonId"; "required": false; "isSignal": true; }; "working": { "alias": "working"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "btnClick": "btnClick"; }, never, never, false, never>;
}
