import * as i0 from '@angular/core';
import { OnInit, AfterViewInit, EventEmitter, ElementRef } from '@angular/core';
import { ButtonType } from '@fundamental-ngx/core/button';
import { IconFont } from '@fundamental-ngx/core/icon';
import { MenuComponent } from '@fundamental-ngx/platform/menu';
import { BaseComponent } from '@fundamental-ngx/platform/shared';
import * as i2 from '@fundamental-ngx/core/content-density';

/**
 * <fdp-split-menu-button [menu]="menu" [buttonLabel]="Default button" (primaryButtonClick)="onPrimaryButtonClick1()">
 * </fdp-split-menu-button>
 *
 * <fdp-menu #menu xPosition="after|before">
 *      <fdp-menu-item (itemSelect)="onItemSelect1('Option 1')">Option 1</fdp-menu-item>
 *      <fdp-menu-item (itemSelect)="onItemSelect1('Option 2')">Option 2</fdp-menu-item>
 *      <fdp-menu-item (itemSelect)="onItemSelect1('Option 3')">Option 3</fdp-menu-item>
 * </fdp-menu>
 */
declare class SplitMenuButtonComponent extends BaseComponent implements OnInit, AfterViewInit {
    /** Whether or not the element should keep a fixed width. The width could change if the text changes length. */
    fixedWidth: boolean;
    /** text for tooltip */
    title: string;
    /** text for tooltip */
    menuTitle: string;
    /** Label for the first Button */
    buttonLabel: string;
    /** reference to menu which will be controlled by split button */
    menu: MenuComponent;
    /** The icon to include in the menu-button */
    icon: string;
    /** Glyph font family */
    iconFont: IconFont;
    /** The type of the button.
     * 'Emphasized', 'Ghost', 'standard', 'positive', 'negative', 'transparent'
     * Leave empty for default.'*/
    type: ButtonType;
    /** Event sent when split-menu-button primary button is clicked */
    primaryButtonClick: EventEmitter<any>;
    /** @hidden */
    primaryBtn: ElementRef;
    /** used as id for Menu Button
     * @hidden
     */
    secondaryId: string;
    /** @hidden */
    primaryButtonWidth: string;
    /** Defined max width of Split menu button */
    splitButtonMaxWidth: string;
    /** @hidden */
    get typeClass(): string;
    /** handles rtl service
     * @hidden */
    protected readonly dir: i0.Signal<"ltr" | "rtl">;
    /** @hidden */
    private readonly _rtlService;
    /** Tabindex for button. */
    get tabindex(): number;
    /** @hidden */
    ngOnInit(): void;
    /** @hidden */
    ngAfterViewInit(): void;
    /**
     *  Handles split-menu-button button click
     */
    primaryButtonClicked(event: any): void;
    /** @hidden */
    private _setPrimaryButtonWidth;
    static ɵfac: i0.ɵɵFactoryDeclaration<SplitMenuButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SplitMenuButtonComponent, "fdp-split-menu-button", never, { "fixedWidth": { "alias": "fixedWidth"; "required": false; }; "title": { "alias": "title"; "required": false; }; "menuTitle": { "alias": "menuTitle"; "required": false; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; }; "menu": { "alias": "menu"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconFont": { "alias": "iconFont"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, { "primaryButtonClick": "primaryButtonClick"; }, never, never, true, never>;
}

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

export { PlatformSplitMenuButtonModule, SplitMenuButtonComponent };
