import * as _angular_core from '@angular/core';
import { AfterViewInit, ElementRef, Injector } from '@angular/core';
import _SegmentedButton, { ISegmentedButtonItem } from '@ui5/webcomponents/dist/SegmentedButton.js';
export { ISegmentedButtonItem } from '@ui5/webcomponents/dist/SegmentedButton.js';
import { UI5CustomEvent } from '@ui5/webcomponents-base';

declare class SegmentedButton implements AfterViewInit {
    /**
     * Defines the accessible ARIA name of the component.
     */
    accessibleName: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the IDs of the HTML Elements that label the component.
     */
    accessibleNameRef: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the accessible description of the component.
     */
    accessibleDescription: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the IDs of the HTML Elements that describe the component.
     */
    accessibleDescriptionRef: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the component selection mode.
     */
    selectionMode: _angular_core.InputSignal<"Single" | "Multiple" | undefined>;
    /**
     * Determines whether the segmented button items should be sized to fit their content.
  
  If set to `true`, each item will be sized to fit its content, with any extra space distributed after the last item.
  If set to `false` (the default), all items will be equally sized to fill the available space.
     */
    itemsFitContent: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Returns an array of the currently selected items.
     * @readonly This property is managed by the web component and updates reactively.
     * Based on schema: readonly field that updates via selection-change event parameters.
     */
    selectedItems: _angular_core.Signal<ISegmentedButtonItem[]>;
    /**
     * Fired when the selected item changes.
     */
    ui5SelectionChange: _angular_core.OutputEmitterRef<UI5CustomEvent<_SegmentedButton, "selection-change">>;
    /**
     * Available slots for content projection in this component.
     *
     * Slots allow you to insert custom content into predefined areas of the web component.
     * Use the `slot` attribute on child elements to target specific slots.
     *
     * - **(default)**: Defines the items of `ui5-segmented-button`.
  
  **Note:** Multiple items are allowed.
  
  **Note:** Use the `ui5-segmented-button-item` for the intended design.
     *
     * @example
     * ```html
     * <ui5-segmented-button>
     *   <div slot="header">Custom header content</div>
     *   <p>Default slot content</p>
     * </ui5-segmented-button>
     * ```
     *
     * @readonly
     * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}
     */
    readonly slots: {
        name: string;
        description: string;
    }[];
    elementRef: ElementRef<_SegmentedButton>;
    injector: Injector;
    private _selectedItemsSignal;
    get element(): _SegmentedButton;
    ngAfterViewInit(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SegmentedButton, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SegmentedButton, "ui5-segmented-button, [ui5-segmented-button]", ["ui5SegmentedButton"], { "accessibleName": { "alias": "accessibleName"; "required": false; "isSignal": true; }; "accessibleNameRef": { "alias": "accessibleNameRef"; "required": false; "isSignal": true; }; "accessibleDescription": { "alias": "accessibleDescription"; "required": false; "isSignal": true; }; "accessibleDescriptionRef": { "alias": "accessibleDescriptionRef"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "itemsFitContent": { "alias": "itemsFitContent"; "required": false; "isSignal": true; }; }, { "ui5SelectionChange": "ui5SelectionChange"; }, never, ["*"], true, never>;
}

export { SegmentedButton };
