import * as _angular_core from '@angular/core';
import { ElementRef } from '@angular/core';
import * as i4 from '@fundamental-ngx/core/content-density';
import { ContentDensityObserver } from '@fundamental-ngx/core/content-density';

/**
 * Applies the panel content style to a div element.
 *
 * ```html
 * <div fd-panel-content>Panel Content</div>
 * ```
 */
declare class PanelContentDirective {
    /** Custom height of the content container. */
    readonly height: _angular_core.InputSignal<string | null>;
    /** Custom min-height of the content container. */
    readonly minHeight: _angular_core.InputSignal<string | null>;
    /** Custom max-height of the content container. */
    readonly maxHeight: _angular_core.InputSignal<string | null>;
    /** aria-label attribute of the host element element. */
    readonly ariaLabel: _angular_core.InputSignal<string | null>;
    /** aria-labelledby attribute of the host element element. */
    readonly ariaLabelledBy: _angular_core.InputSignal<string | null>;
    /** role attribute of the host element. */
    readonly role: _angular_core.InputSignal<string>;
    /** Whether the content should have no padding. */
    readonly noPadding: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** Whether the content has transparent background. */
    readonly transparent: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** @hidden Signal input backing the id; template uses [id]="..." via alias. */
    readonly _idInput: _angular_core.InputSignal<string | undefined>;
    /** Id of the host element. */
    get id(): string;
    /** @hidden */
    readonly _resolvedId: _angular_core.Signal<string>;
    /** @hidden */
    private readonly _defaultId;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<PanelContentDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PanelContentDirective, "[fd-panel-content]", never, { "height": { "alias": "height"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "noPadding": { "alias": "noPadding"; "required": false; "isSignal": true; }; "transparent": { "alias": "transparent"; "required": false; "isSignal": true; }; "_idInput": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

/**
 * Applies the panel title style to a header element. It can be used with any header level.
 *
 * ```html
 * <h5 fd-panel-title>Panel Title</h5>
 * ```
 */
declare class PanelTitleDirective {
    /** Id of the host element. */
    readonly id: _angular_core.InputSignal<string>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<PanelTitleDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PanelTitleDirective, "[fd-panel-title]", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

/**
 * The panel is a container for grouping and displaying information
 * Types: Expandable (default) and Fixed
 * Modes: Tablet/Mobile (default) and Desktop (compact)
 */
declare class PanelComponent {
    readonly elementRef: ElementRef;
    readonly _contentDensityObserver: ContentDensityObserver;
    /** User's custom classes */
    readonly class: _angular_core.InputSignal<string>;
    /** Whether the Panel is fixed */
    readonly fixed: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** Id of the panel element. */
    readonly id: _angular_core.InputSignal<string>;
    /** Id of the expand button */
    readonly expandId: _angular_core.InputSignal<string>;
    /** aria-label of the expand button */
    readonly expandAriaLabel: _angular_core.InputSignal<string | null>;
    /** aria-labelledby of the expand button */
    readonly expandAriaLabelledBy: _angular_core.InputSignal<string | null>;
    /** Whether the Panel Content is expanded */
    readonly expanded: _angular_core.ModelSignal<boolean>;
    /** Whether the panel (header and content) is transparent */
    readonly transparent: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** Whether the panel has no border radius */
    readonly noRadius: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** Reference to panel content */
    readonly panelContent: _angular_core.Signal<PanelContentDirective | undefined>;
    /** @hidden */
    protected readonly buttonIcon: _angular_core.Signal<"slim-arrow-down" | "slim-arrow-left" | "slim-arrow-right">;
    /** @hidden */
    private readonly _rtlService;
    /** @hidden */
    constructor(elementRef: ElementRef, _contentDensityObserver: ContentDensityObserver);
    /** Methods that toggles the Panel Content */
    toggleExpand(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<PanelComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<PanelComponent, "fd-panel", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "fixed": { "alias": "fixed"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "expandId": { "alias": "expandId"; "required": false; "isSignal": true; }; "expandAriaLabel": { "alias": "expandAriaLabel"; "required": false; "isSignal": true; }; "expandAriaLabelledBy": { "alias": "expandAriaLabelledBy"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "transparent": { "alias": "transparent"; "required": false; "isSignal": true; }; "noRadius": { "alias": "noRadius"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, ["panelContent"], ["[fd-panel-title]", "*", "[fd-panel-content]"], true, never>;
}

/**
 * @deprecated
 * Use direct imports of PanelComponent, PanelContentDirective, PanelTitleDirective
 */
declare class PanelModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<PanelModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<PanelModule, never, [typeof PanelComponent, typeof PanelContentDirective, typeof PanelTitleDirective, typeof i4.ContentDensityModule], [typeof PanelComponent, typeof PanelContentDirective, typeof PanelTitleDirective, typeof i4.ContentDensityModule]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<PanelModule>;
}

export { PanelComponent, PanelContentDirective, PanelModule, PanelTitleDirective };
