import * as i0 from '@angular/core';
import { EventEmitter } from '@angular/core';

/**
 * A button component that displays an icon indicating expandable/collapsible state, typically used for accordion panels, tree nodes, or disclosure widgets.
 * The icon rotates based on the expanded state and can be oriented in forward or reverse direction.
 *
 * @usageNotes
 * ### Basic expander button
 * ```html
 * <eui-icon-button-expander
 *   [isExpanded]="expanded"
 *   ariaLabel="Toggle section"
 *   (buttonClick)="expanded = !expanded">
 * </eui-icon-button-expander>
 * ```
 *
 * ### Forward direction (horizontal expansion)
 * ```html
 * <eui-icon-button-expander
 *   [isExpanded]="sidebarOpen"
 *   [isDirectionForward]="true"
 *   ariaLabel="Toggle sidebar">
 * </eui-icon-button-expander>
 * ```
 *
 * ### Accessibility
 * - Provide descriptive `ariaLabel` indicating expand/collapse action
 * - Visual rotation clearly indicates state change
 * - Keyboard accessible via Tab and Enter/Space
 *
 * ### Notes
 * - Default direction is downward (for vertical expansion)
 * - Set `isDirectionForward="true"` for horizontal/sidebar expansion
 * - Icon automatically rotates based on `isExpanded` state
 * - Commonly paired with eui-fieldset or custom collapsible sections
 */
declare class EuiIconButtonExpanderComponent {
    get cssClasses(): string;
    /**
     * The fill color of the icon. Accepts any valid CSS color value.
     */
    fillColor: string;
    /**
     * The size of the icon button. Default is 'm'.
     */
    size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | '3xl' | '4xl';
    /**
     * Accessible label for screen readers describing the button's purpose.
     */
    ariaLabel: string;
    /**
     * Controls the visual state of the expander icon. When true, the icon rotates to indicate expanded state. Default is false.
     */
    isExpanded: boolean;
    /**
     * Controls the rotation direction of the icon. When true, the icon points forward (right) when collapsed; when false, it points downward when collapsed. Default is false.
     */
    isDirectionForward: boolean;
    /**
     * Disables the button interaction when true. Default is false.
     */
    euiDisabled: boolean;
    /**
     * Emitted when the button is clicked. Payload is the native click Event.
     */
    buttonClick: EventEmitter<Event>;
    onClick(event: Event): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiIconButtonExpanderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiIconButtonExpanderComponent, "eui-icon-button-expander", never, { "fillColor": { "alias": "fillColor"; "required": false; }; "size": { "alias": "size"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; "isDirectionForward": { "alias": "isDirectionForward"; "required": false; }; "euiDisabled": { "alias": "euiDisabled"; "required": false; }; }, { "buttonClick": "buttonClick"; }, never, never, true, never>;
    static ngAcceptInputType_isExpanded: unknown;
    static ngAcceptInputType_isDirectionForward: unknown;
    static ngAcceptInputType_euiDisabled: unknown;
}

declare const EUI_ICON_BUTTON_EXPANDER: readonly [typeof EuiIconButtonExpanderComponent];

export { EUI_ICON_BUTTON_EXPANDER, EuiIconButtonExpanderComponent };
//# sourceMappingURL=eui-components-eui-icon-button-expander.d.ts.map
