import { ThemePalette } from '@angular/material/core';
import { AbstractDbxButtonDirective } from '@dereekb/dbx-core';
import { type Maybe } from '@dereekb/util';
import { DbxProgressButtonConfig } from './progress/button.progress.config';
import { type DbxThemeColor } from '../layout/style/style';
import { ProgressSpinnerMode } from '@angular/material/progress-spinner';
import * as i0 from "@angular/core";
export type DbxButtonType = 'basic' | 'raised' | 'stroked' | 'flat' | 'icon';
/**
 * Style details for the button
 */
export interface DbxButtonStyle {
    readonly type?: DbxButtonType;
    readonly mode?: ProgressSpinnerMode;
    readonly color?: ThemePalette | DbxThemeColor;
    readonly spinnerColor?: ThemePalette | DbxThemeColor;
    readonly customButtonColor?: string;
    readonly customTextColor?: string;
    readonly customSpinnerColor?: string;
    readonly fab?: boolean;
}
/**
 * @deprecated use DbxButtonType instead.
 */
export declare enum DbxButtonDisplayType {
    RAISED = "raised",
    STROKED = "stroked",
    FLAT = "flag",
    ICON_ONLY = "icon"
}
/**
 * Complex button that supports loading states.
 */
export declare class DbxButtonComponent extends AbstractDbxButtonDirective {
    readonly bar: import("@angular/core").InputSignalWithTransform<boolean, Maybe<boolean | "">>;
    readonly type: import("@angular/core").InputSignal<Maybe<DbxButtonType>>;
    readonly buttonStyle: import("@angular/core").InputSignal<Maybe<DbxButtonStyle>>;
    readonly color: import("@angular/core").InputSignal<"primary" | "accent" | "warn" | "notice" | "ok" | "success" | "grey" | "background" | "disabled" | undefined>;
    readonly spinnerColor: import("@angular/core").InputSignal<"primary" | "accent" | "warn" | "notice" | "ok" | "success" | "grey" | "background" | "disabled" | undefined>;
    readonly customButtonColor: import("@angular/core").InputSignal<Maybe<string>>;
    readonly customTextColor: import("@angular/core").InputSignal<Maybe<string>>;
    readonly customSpinnerColor: import("@angular/core").InputSignal<Maybe<string>>;
    readonly basic: import("@angular/core").InputSignalWithTransform<boolean, Maybe<boolean | "">>;
    readonly raised: import("@angular/core").InputSignalWithTransform<boolean, Maybe<boolean | "">>;
    readonly stroked: import("@angular/core").InputSignalWithTransform<boolean, Maybe<boolean | "">>;
    readonly flat: import("@angular/core").InputSignalWithTransform<boolean, Maybe<boolean | "">>;
    readonly iconOnly: import("@angular/core").InputSignalWithTransform<boolean, Maybe<boolean | "">>;
    readonly fab: import("@angular/core").InputSignalWithTransform<boolean, Maybe<boolean | "">>;
    readonly mode: import("@angular/core").InputSignal<Maybe<ProgressSpinnerMode>>;
    readonly typeSignal: import("@angular/core").Signal<DbxButtonType>;
    readonly configSignal: import("@angular/core").Signal<DbxProgressButtonConfig>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DbxButtonComponent, "dbx-button", never, { "bar": { "alias": "bar"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "buttonStyle": { "alias": "buttonStyle"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "spinnerColor": { "alias": "spinnerColor"; "required": false; "isSignal": true; }; "customButtonColor": { "alias": "customButtonColor"; "required": false; "isSignal": true; }; "customTextColor": { "alias": "customTextColor"; "required": false; "isSignal": true; }; "customSpinnerColor": { "alias": "customSpinnerColor"; "required": false; "isSignal": true; }; "basic": { "alias": "basic"; "required": false; "isSignal": true; }; "raised": { "alias": "raised"; "required": false; "isSignal": true; }; "stroked": { "alias": "stroked"; "required": false; "isSignal": true; }; "flat": { "alias": "flat"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "fab": { "alias": "fab"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
}
