import * as _angular_core from '@angular/core';
import { AfterContentInit, TemplateRef } from '@angular/core';
import { EuiTemplateDirective } from '@eui/components/directives';
import * as i1 from '@eui/components/shared';
import { BaseStatesDirective } from '@eui/components/shared';

/**
 * Directive for projecting custom content into the right side of the fieldset label area.
 * Used to add supplementary controls or information aligned to the right of the label text.
 */
declare class EuiFieldsetLabelRightContentTagDirective {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<EuiFieldsetLabelRightContentTagDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<EuiFieldsetLabelRightContentTagDirective, "euiFieldsetLabelRightContent", never, {}, {}, never, never, true, never>;
}
/**
 * Directive for projecting additional content below the main fieldset label.
 * Used to add descriptive text, hints, or secondary information in the label section.
 */
declare class EuiFieldsetLabelExtraContentTagDirective {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<EuiFieldsetLabelExtraContentTagDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<EuiFieldsetLabelExtraContentTagDirective, "euiFieldsetLabelExtraContent", never, {}, {}, never, never, true, never>;
}
/**
 * @description
 * `eui-fieldset` is a container component that groups related form controls or content sections with a labeled border.
 * `eui-fieldset` supports collapsible/expandable behavior, custom icons, and flexible content projection.
 * Commonly used to organize complex forms into logical sections or create accordion-style interfaces.
 * `eui-fieldset` Provides visual hierarchy through theming variants and size options.
 *
 * @usageNotes
 * ### Basic fieldset
 * ```html
 * <eui-fieldset label="Personal Information">
 *   <eui-input-text label="Name"></eui-input-text>
 *   <eui-input-text label="Email"></eui-input-text>
 * </eui-fieldset>
 * ```
 *
 * ### Expandable fieldset
 * ```html
 * <eui-fieldset
 *   label="Advanced Options"
 *   [isExpandable]="true"
 *   [isExpanded]="false"
 *   (expand)="onExpand($event)">
 *   <ng-template euiTemplate="eui-fieldset-content">
 *     <p>Collapsible content here</p>
 *   </ng-template>
 * </eui-fieldset>
 * ```
 *
 * ### Accessibility
 * - Uses semantic `<fieldset>` and `<legend>` elements for proper form grouping
 * - Expand/collapse button includes descriptive aria-label
 * - Keyboard navigation supported for expandable fieldsets
 *
 * ### Notes
 * - Use `isExpandable` with lazy-loaded content via `euiTemplate` for performance
 * - Apply state variants (euiPrimary, euiSuccess, etc.) for visual emphasis
 * - Set `isFirst` to remove top margin in stacked layouts
 */
declare class EuiFieldsetComponent implements AfterContentInit {
    /** CSS classes applied to the host element */
    get cssClasses(): string;
    /**
     * Data attribute used for end-to-end testing identification.
     * @default 'eui-fieldset'
     */
    readonly e2eAttr: _angular_core.InputSignal<string>;
    /**
     * Unique identifier for the fieldset element.
     * Emitted in the expand event to identify which fieldset was toggled.
     * Required when using expandable fieldsets to track state.
     */
    readonly id: _angular_core.InputSignal<string>;
    /**
     * Primary text displayed in the fieldset header.
     * Provides a descriptive title for the grouped content.
     */
    readonly label: _angular_core.InputSignal<string>;
    /**
     * CSS class name for a custom icon displayed in the fieldset header.
     * Alternative to iconSvgName for using icon fonts or custom icon implementations.
     */
    readonly iconClass: _angular_core.InputSignal<string>;
    /**
     * Name of the SVG icon to display in the fieldset header.
     * Follows EUI icon naming conventions for consistent visual language.
     */
    readonly iconSvgName: _angular_core.InputSignal<string>;
    /**
     * Fill color applied to the SVG icon in the fieldset header.
     * Accepts CSS color values to customize icon appearance.
     */
    readonly iconSvgFillColor: _angular_core.InputSignal<string>;
    /**
     * Displays a default icon in the fieldset header when no custom icon is specified.
     * Provides visual consistency across fieldsets.
     * @default false
     */
    readonly hasDefaultIcon: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Enables expand/collapse functionality for the fieldset content.
     * Adds an interactive toggle button to the header for showing/hiding content.
     * @default false
     */
    readonly isExpandable: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Controls the expanded state of the fieldset content.
     * Only effective when isExpandable is true.
     * @default true
     */
    readonly isExpanded: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** Internal mutable expanded state, synced from isExpanded input */
    protected readonly expanded: _angular_core.WritableSignal<boolean>;
    /**
     * Positions the expand/collapse toggle button on the left side of the header.
     * By default, the expander appears on the right.
     * @default false
     */
    readonly hasLeftExpander: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Applies larger sizing to the fieldset header and spacing.
     * Used to create visual hierarchy or emphasize important sections.
     * @default false
     */
    readonly isLarge: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Removes top margin when the fieldset is the first in a sequence.
     * Ensures proper spacing in stacked fieldset layouts.
     * @default false
     */
    readonly isFirst: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Emitted when the fieldset is expanded or collapsed.
     * Payload: string containing the fieldset's id property.
     * Triggered by user interaction with the expand/collapse toggle.
     */
    readonly expand: _angular_core.OutputEmitterRef<string>;
    /** Label for expand button accessibility */
    expandMenuLabel: string;
    /** Label for collapse button accessibility */
    collapseMenuLabel: string;
    /** Template reference for lazy-loaded content */
    protected lazyContent: _angular_core.WritableSignal<TemplateRef<HTMLElement>>;
    /** Signal-based query for template directives for content projection */
    protected readonly templates: _angular_core.Signal<readonly EuiTemplateDirective<any>[]>;
    protected baseStatesDirective: BaseStatesDirective;
    constructor();
    ngAfterContentInit(): void;
    /**
     * Handles expand/collapse toggle events
     * Emits the fieldset ID when toggled
     */
    onToggle(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<EuiFieldsetComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<EuiFieldsetComponent, "eui-fieldset", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "iconClass": { "alias": "iconClass"; "required": false; "isSignal": true; }; "iconSvgName": { "alias": "iconSvgName"; "required": false; "isSignal": true; }; "iconSvgFillColor": { "alias": "iconSvgFillColor"; "required": false; "isSignal": true; }; "hasDefaultIcon": { "alias": "hasDefaultIcon"; "required": false; "isSignal": true; }; "isExpandable": { "alias": "isExpandable"; "required": false; "isSignal": true; }; "isExpanded": { "alias": "isExpanded"; "required": false; "isSignal": true; }; "hasLeftExpander": { "alias": "hasLeftExpander"; "required": false; "isSignal": true; }; "isLarge": { "alias": "isLarge"; "required": false; "isSignal": true; }; "isFirst": { "alias": "isFirst"; "required": false; "isSignal": true; }; }, { "expand": "expand"; }, ["templates"], ["euiFieldsetLabelExtraContent", "euiFieldsetLabelRightContent", "*"], true, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiPrimary": "euiPrimary"; "euiSecondary": "euiSecondary"; "euiSuccess": "euiSuccess"; "euiInfo": "euiInfo"; "euiWarning": "euiWarning"; "euiDanger": "euiDanger"; "euiVariant": "euiVariant"; "euiHighlighted": "euiHighlighted"; }; outputs: {}; }]>;
}

declare const EUI_FIELDSET: readonly [typeof EuiFieldsetComponent, typeof EuiFieldsetLabelExtraContentTagDirective, typeof EuiFieldsetLabelRightContentTagDirective];

export { EUI_FIELDSET, EuiFieldsetComponent, EuiFieldsetLabelExtraContentTagDirective, EuiFieldsetLabelRightContentTagDirective };
//# sourceMappingURL=eui-components-eui-fieldset.d.ts.map
