import { FocusOrigin } from '@angular/cdk/a11y';
import { Platform } from '@angular/cdk/platform';
import { AfterViewInit, ElementRef, InjectionToken, NgZone, OnDestroy } from '@angular/core';
import { MatRipple, MatRippleLoader } from '@angular/material/core';
import * as i0 from "@angular/core";
/** Object that can be used to configure the default options for the button component. */
export interface MatButtonConfig {
    /** Whether disabled buttons should be interactive. */
    disabledInteractive?: boolean;
}
/** Injection token that can be used to provide the default options the button component. */
export declare const MAT_BUTTON_CONFIG: InjectionToken<MatButtonConfig>;
/** Base class for all buttons.  */
export declare class QMSButtonBase implements AfterViewInit, OnDestroy {
    _elementRef: ElementRef;
    _platform: Platform;
    _ngZone: NgZone;
    _animationMode?: string;
    private readonly _focusMonitor;
    /**
     * Handles the lazy creation of the MatButton ripple.
     * Used to improve initial load time of large applications.
     */
    _rippleLoader: MatRippleLoader;
    /** Whether this button is a FAB. Used to apply the correct class on the ripple. */
    _isFab: boolean;
    /**
     * Reference to the MatRipple instance of the button.
     * @deprecated Considered an implementation detail. To be removed.
     * @breaking-change 17.0.0
     */
    get ripple(): MatRipple;
    set ripple(v: MatRipple);
    /**
     * Theme color of the button. This API is supported in M2 themes only, it has
     * no effect in M3 themes.
     *
     * For information on applying color variants in M3, see
     * https://material.angular.io/guide/theming#using-component-color-variants.
     */
    color?: string | null;
    /** Whether the ripple effect is disabled or not. */
    get disableRipple(): boolean;
    set disableRipple(value: any);
    private _disableRipple;
    /** Whether the button is disabled. */
    get disabled(): boolean;
    set disabled(value: any);
    private _disabled;
    /** `aria-disabled` value of the button. */
    ariaDisabled: boolean | undefined;
    disabledInteractive: boolean;
    constructor(_elementRef: ElementRef, _platform: Platform, _ngZone: NgZone, _animationMode?: string);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /** Focuses the button. */
    focus(origin?: FocusOrigin, options?: FocusOptions): void;
    protected _getAriaDisabled(): boolean;
    protected _getDisabledAttribute(): boolean;
    private _updateRippleDisabled;
    static ɵfac: i0.ɵɵFactoryDeclaration<QMSButtonBase, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<QMSButtonBase, never, never, { "color": { "alias": "color"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ariaDisabled": { "alias": "aria-disabled"; "required": false; }; "disabledInteractive": { "alias": "disabledInteractive"; "required": false; }; }, {}, never, never, false, never>;
    static ngAcceptInputType_disableRipple: unknown;
    static ngAcceptInputType_disabled: unknown;
    static ngAcceptInputType_ariaDisabled: unknown;
    static ngAcceptInputType_disabledInteractive: unknown;
}
