import * as _angular_core from '@angular/core';
import { InjectionToken } from '@angular/core';
import { BooleanInput } from '@angular/cdk/coercion';
import { ModuleDeprecation } from '@fundamental-ngx/cdk/utils';
import { ButtonModel, GlyphPosition, ButtonType } from '@fundamental-ngx/core/button';
export { ButtonModel } from '@fundamental-ngx/core/button';
import { IconFont } from '@fundamental-ngx/core/icon';
import * as i2 from '@fundamental-ngx/core/content-density';

/**
 * @deprecated
 * Button component is deprecated. Use `fd-button` from `@fundamental-ngx/core` instead.
 */
declare class ButtonComponent implements ButtonModel {
    /** Button ID - default value is provided if not set */
    readonly id: _angular_core.InputSignal<string>;
    /** Name for the element */
    readonly name: _angular_core.InputSignal<string | undefined>;
    /** Width of the element */
    readonly width: _angular_core.InputSignal<string | undefined>;
    /** Disabled status of the element */
    readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** Sets the `aria-label` attribute to the element */
    readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
    /** Sets the `aria-labelledby` attribute to the element */
    readonly ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
    /** Sets the `aria-describedby` attribute to the element */
    readonly ariaDescribedBy: _angular_core.InputSignal<string | undefined>;
    /** Position of glyph related to text */
    readonly glyphPosition: _angular_core.InputSignal<GlyphPosition>;
    /** Text rendered inside button component */
    readonly label: _angular_core.InputSignal<string | undefined>;
    /** The icon to include in the button. See the icon page for the list of icons */
    readonly glyph: _angular_core.InputSignal<string | undefined>;
    /** Glyph font family */
    readonly glyphFont: _angular_core.InputSignal<IconFont>;
    /** The type of the button. Types include:
     * 'standard' | 'positive' | 'negative' | 'attention' | 'half' | 'ghost' | 'transparent' | 'emphasized' | 'menu'.
     * Leave empty for default (Standard button).
     * Default value is set to 'standard'
     */
    readonly fdType: _angular_core.InputSignal<ButtonType>;
    /**
     * @deprecated
     * Use `fdType` property.
     * The buttonType of the button. Types includes
     * 'standard','positive', 'negative', 'attention', 'ghost',
     * 'transparent', 'emphasized','menu'.
     * Leave empty for default (standard button).
     */
    readonly buttonType: _angular_core.InputSignal<ButtonType | undefined>;
    /** Whether button is in toggled state */
    readonly toggled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    /** arialabel, tooltip for button, intended to be used when the button only contains an icon */
    readonly title: _angular_core.InputSignal<string | undefined>;
    /** @deprecated use toggled input property instead
     * aria-selected for accessibility to the native HTML button
     */
    readonly ariaSelected: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    /** aria-disabled for accessibility to the native HTML button */
    readonly ariaDisabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    /** propagate aria-expanded for accessibility to the native HTML button */
    readonly ariaExpanded: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    /** propagate aria-controls for accessibility to the native HTML button */
    readonly ariaControlsId: _angular_core.InputSignal<string | undefined>;
    /** @deprecated use toggled input property instead
     * propagate aria-pressed for accessibility to the native HTML button
     */
    readonly ariaPressed: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    /** Specifies the type to the native HTML button */
    readonly type: _angular_core.InputSignal<string | undefined>;
    /** Specifies an initial value to the native HTML button */
    readonly value: _angular_core.InputSignal<string | undefined>;
    /** Event sent when button is clicked */
    readonly buttonClicked: _angular_core.OutputEmitterRef<any>;
    /** @hidden Computed to determine effective fdType (buttonType overrides fdType if provided) */
    protected readonly _effectiveFdType: _angular_core.Signal<ButtonType>;
    /** @hidden Computed to determine effective toggled state */
    protected readonly _effectiveToggled: _angular_core.Signal<boolean>;
    /** @hidden */
    constructor();
    /**
     * Programmatically set the disabled state.
     * Implements ButtonModel interface.
     * Note: Cannot directly set signal inputs. This method exists for interface compatibility.
     */
    setDisabled(_value: boolean): void;
    /**
     * Get the current disabled state.
     * Implements ButtonModel interface.
     */
    isDisabled(): boolean;
    /**
     * Programmatically set the button type.
     * Implements ButtonModel interface.
     * Note: Cannot directly set signal inputs. This method exists for interface compatibility.
     */
    setFdType(_value: ButtonType): void;
    /**
     * Get the current button type.
     * Implements ButtonModel interface.
     */
    getFdType(): ButtonType;
    /**
     * No-op method for interface compatibility.
     * Implements ButtonModel interface.
     * Signal-based components don't need manual change detection.
     */
    markForCheck(): void;
    /**
     * Handles button click
     */
    protected onBtnClick($event: any): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "fdp-button", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "glyphPosition": { "alias": "glyphPosition"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "glyph": { "alias": "glyph"; "required": false; "isSignal": true; }; "glyphFont": { "alias": "glyphFont"; "required": false; "isSignal": true; }; "fdType": { "alias": "fdType"; "required": false; "isSignal": true; }; "buttonType": { "alias": "buttonType"; "required": false; "isSignal": true; }; "toggled": { "alias": "toggled"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "ariaSelected": { "alias": "ariaSelected"; "required": false; "isSignal": true; }; "ariaDisabled": { "alias": "ariaDisabled"; "required": false; "isSignal": true; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; "isSignal": true; }; "ariaControlsId": { "alias": "ariaControlsId"; "required": false; "isSignal": true; }; "ariaPressed": { "alias": "ariaPressed"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "buttonClicked": "buttonClicked"; }, never, never, true, never>;
}
declare class DeprecatedButtonAriaSelected implements ModuleDeprecation {
    /** @hidden */
    message: string;
    /** @hidden */
    alternative: {
        name: string;
        link: string[];
        fragment: string;
    };
}
declare class DeprecatedButtonAriaPressed implements ModuleDeprecation {
    /** @hidden */
    message: string;
    /** @hidden */
    alternative: {
        name: string;
        link: string[];
        fragment: string;
    };
}

/**
 * @deprecated
 * Use direct imports of components and directives.
 */
declare class PlatformButtonModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<PlatformButtonModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<PlatformButtonModule, never, [typeof ButtonComponent, typeof i2.ContentDensityModule], [typeof ButtonComponent, typeof i2.ContentDensityModule]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<PlatformButtonModule>;
}

declare const FDP_BUTTON: InjectionToken<unknown>;

export { ButtonComponent, DeprecatedButtonAriaPressed, DeprecatedButtonAriaSelected, FDP_BUTTON, PlatformButtonModule };
