import * as _angular_core from '@angular/core';
import { BooleanInput } from '@angular/cdk/coercion';

/**
 * @description
 * A component that disables content and displays a semi-transparent overlay with optional notification.
 * Manages focus state and provides visual feedback when content is temporarily unavailable.
 * Useful for indicating loading states, processing operations, or temporarily disabled sections.
 *
 * @usageNotes
 * ### Basic Usage
 * ```html
 * <eui-disable-content [isDisabled]="isProcessing">
 *   <form>
 *     <!-- Form content -->
 *   </form>
 * </eui-disable-content>
 * ```
 *
 * ### With Notification
 * ```html
 * <eui-disable-content
 *   [isDisabled]="isSaving"
 *   [disabledText]="'Please wait while we save your changes'">
 *   <div class="content-section">
 *     <!-- Content -->
 *   </div>
 * </eui-disable-content>
 * ```
 *
 * ### Conditional Disabling
 * ```typescript
 * // Component
 * isFormDisabled = false;
 *
 * submitForm(): void {
 *   this.isFormDisabled = true;
 *   this.api.submit().subscribe(() => {
 *     this.isFormDisabled = false;
 *   });
 * }
 *
 * // Template
 * <eui-disable-content [isDisabled]="isFormDisabled">
 *   <button (click)="submitForm()">Submit</button>
 * </eui-disable-content>
 * ```
 *
 * ### Accessibility
 * - Automatically sets `aria-disabled="true"` on focused elements when disabled
 * - Manages focus state by storing and restoring last active element
 * - Sets `tabindex="-1"` on disabled elements to prevent keyboard navigation
 * - Displays growl notification when clicking disabled content (if `disabledText` provided)
 * - Restores focus to previously active element when re-enabled
 *
 * ### Notes
 * - Wraps content with `<ng-content/>` for flexible composition
 * - Requires `EuiGrowlService` for notification functionality
 * - CSS class `eui-disable-content--disabled` applied when active
 * - Does not prevent programmatic interaction, only visual and focus management
 * - Use for temporary disabling; for permanent states, use native `disabled` attribute
 */
declare class EuiDisableContentComponent {
    /**
     * Text to display in an eui-growl (type info) notification when clicking
     * the disabled content.
     */
    disabledText: _angular_core.InputSignal<string>;
    /**
     * Controls whether the content is disabled. If disabled, a semi-transparent
     * overlay with spinner is shown.
     */
    isDisabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
    /** Stores the last active element before disabling */
    private lastActiveElement;
    /** Reference to the component's element */
    private readonly elRef;
    /** Service for displaying growl notifications */
    private readonly growlService;
    /** Renderer for DOM manipulations */
    private readonly renderer;
    /**
     * Tracks when the component transitions from enabled to disabled state.
     * Returns true only when isDisabled changes from false to true. True if
     * the component is transitioning to blocked state.
     */
    private isBlocking;
    /**
     * Initializes the component and sets up an effect to handle disabled state changes
     */
    constructor();
    /**
     * Handles click events on the disabled content
     * Shows a growl notification if content is disabled and has disabled text
     * @internal
     */
    protected onClick(): void;
    /**
     * Stores the currently active element before disabling
     * @param activeElement The element to deactivate
     * @internal
     */
    private deactivateElement;
    /**
     * Reactivates the last active element
     * @internal
     */
    private reactivateElement;
    /**
     * Gets the currently focused element within the component
     * @returns The focused HTML element or null
     * @internal
     */
    private getActiveElement;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<EuiDisableContentComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<EuiDisableContentComponent, "eui-disable-content", never, { "disabledText": { "alias": "disabledText"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
}

declare const EUI_DISABLE_CONTENT: readonly [typeof EuiDisableContentComponent];

export { EUI_DISABLE_CONTENT, EuiDisableContentComponent };
//# sourceMappingURL=eui-components-eui-disable-content.d.ts.map
