import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
import * as _angular_core from '@angular/core';
import { AfterViewInit } from '@angular/core';
import { MenuItem } from '@siemens/element-ng/common';
import { MenuItemAction, MenuItemCheckbox, MenuItemLink, MenuItemRouterLink, MenuItemGroup, MenuItem as MenuItem$1, MenuItemRadio } from '@siemens/element-ng/menu';

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */

type ViewType = 'collapsible' | 'expanded' | 'mobile';
type ContentActionBarMainItem = (MenuItemAction | MenuItemCheckbox | MenuItemLink | MenuItemRouterLink | MenuItemGroup) & {
    iconOnly?: boolean;
};

declare class SiContentActionBarComponent implements AfterViewInit {
    /**
     * List of primary actions. Supports up to **4** actions and omits additional ones.
     */
    readonly primaryActions: _angular_core.InputSignal<readonly (MenuItem | ContentActionBarMainItem)[] | undefined>;
    /**
     * List of secondary actions.
     */
    readonly secondaryActions: _angular_core.InputSignal<readonly (MenuItem | MenuItem$1)[] | undefined>;
    /**
     * A param that will be passed to the `action` in the primary/secondary actions.
     * This allows to re-use the same primary/secondary action arrays across rows
     * in a table.
     */
    readonly actionParam: _angular_core.InputSignal<any>;
    /**
     * Selection of view type as 'collapsible', 'expanded' or 'mobile'.
     *
     * @defaultValue 'expanded'
     */
    readonly viewType: _angular_core.InputSignal<ViewType>;
    /**
     * Toggle icon aria-label, required for a11y
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_CONTENT_ACTION_BAR.TOGGLE:Toggle`)
     * ```
     */
    readonly toggleItemLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * Option to remove all icons from dropdown menus of the content action bar.
     *
     * Some apps provide only few actions with icons, located in the set of primary actions.
     * The icons are visible in the `collapsible` and `expanded` view type. On reduced space,
     * primary actions are relocated in the same dropdown menu as the secondary actions. The
     * dropdown menu can look unbalanced, if a large number of secondary actions without
     * icons are presented with few actions with icons. This option balances the look and feel
     * by removing all icons from actions in the dropdown menu.
     *
     * @defaultValue false
     */
    readonly preventIconsInDropdownMenus: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Disables the whole content-action-bar.
     *
     * @defaultValue false
     */
    readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
    private readonly expandElement;
    private readonly menuBarElement;
    protected readonly mobileActions: _angular_core.Signal<readonly (MenuItem | MenuItem$1)[]>;
    protected readonly secondaryActionsInternal: _angular_core.Signal<readonly (MenuItem | MenuItem$1)[] | undefined>;
    protected readonly icons: Record<"elementCancel" | "elementOptionsVertical", string>;
    protected readonly expanded: _angular_core.WritableSignal<boolean>;
    protected parentElement?: HTMLElement | null;
    private elementRef;
    private menuActionService;
    ngAfterViewInit(): void;
    protected expand(): void;
    protected collapse(): void;
    protected isNewItemStyle(item: MenuItem | ContentActionBarMainItem): item is ContentActionBarMainItem;
    protected runAction(item: MenuItemAction | MenuItemRadio | MenuItemCheckbox): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiContentActionBarComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiContentActionBarComponent, "si-content-action-bar", never, { "primaryActions": { "alias": "primaryActions"; "required": false; "isSignal": true; }; "secondaryActions": { "alias": "secondaryActions"; "required": false; "isSignal": true; }; "actionParam": { "alias": "actionParam"; "required": false; "isSignal": true; }; "viewType": { "alias": "viewType"; "required": false; "isSignal": true; }; "toggleItemLabel": { "alias": "toggleItemLabel"; "required": false; "isSignal": true; }; "preventIconsInDropdownMenus": { "alias": "preventIconsInDropdownMenus"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class SiContentActionBarModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiContentActionBarModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiContentActionBarModule, never, [typeof SiContentActionBarComponent], [typeof SiContentActionBarComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<SiContentActionBarModule>;
}

export { SiContentActionBarComponent, SiContentActionBarModule };
export type { ContentActionBarMainItem, ViewType };
