import * as _angular_core from '@angular/core';

/**
 * @description
 * Component that wraps content and manages focus state when content is blocked.
 * Provides accessibility attributes and handles focus restoration when blocking/unblocking.
 *
 * @usageNotes
 * #### Basic blocked content
 * ```html
 * <eui-block-content [isBlocked]="isLoading">
 *   <form>
 *     <input type="text" />
 *     <button>Submit</button>
 *   </form>
 * </eui-block-content>
 * ```
 *
 * #### With custom ARIA attributes
 * ```html
 * <eui-block-content
 *   role="region"
 *   ariaLabel="User profile section"
 *   [isBlocked]="isSaving">
 *   <div>Content that can be blocked</div>
 * </eui-block-content>
 * ```
 *
 * ```ts
 * isLoading = true;
 *
 * loadData(): void {
 *   this.isLoading = true;
 *   this.service.getData().subscribe(() => {
 *     this.isLoading = false;
 *   });
 * }
 * ```
 *
 * ### Accessibility
 * - Automatically blurs focused elements when content is blocked
 * - Restores focus to previously focused element when unblocked
 * - Uses ARIA role and label for screen reader context
 * - Prevents keyboard interaction with blocked content
 * - Focus management ensures users don't interact with disabled content
 *
 * ### Notes
 * - Use isBlocked to control blocking state (typically tied to loading/saving states)
 * - Default role is 'region', can be customized via role input
 * - Default ariaLabel is 'block content wrapper', should be customized for context
 * - Focus is automatically saved and restored during block/unblock transitions
 * - Blocked state applies visual styling (typically overlay or disabled appearance)
 * - Commonly used with loading indicators or during async operations
 * - Does not prevent programmatic changes, only user interaction
 */
declare class EuiBlockContentComponent {
    /**
     * ARIA role for the content wrapper
     * @default 'region'
     */
    role: _angular_core.InputSignal<string>;
    /**
     * ARIA label for the content wrapper
     * @default 'block content wrapper'
     */
    ariaLabel: _angular_core.InputSignal<string>;
    /**
     * Whether the content is currently blocked
     * When true, focused elements within will be blurred and state saved
     * @default false
     */
    isBlocked: _angular_core.InputSignalWithTransform<boolean, unknown>;
    cssClasses: _angular_core.Signal<string>;
    private lastActiveElement;
    private elRef;
    private renderer;
    private previousBlocked;
    constructor();
    /**
     * Removes focus from the currently focused element when blocking
     * Stores the element reference for later restoration
     *
     * @param activeElement - The currently focused element
     */
    private deactivateElement;
    /**
     * Restores focus to the previously focused element when unblocking
     *
     * @param element - The element that was previously focused
     */
    private reactivateElement;
    /**
     * Finds the currently focused element within the block content
     *
     * @returns The currently focused HTMLElement or null if none found
     */
    private getActiveElement;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<EuiBlockContentComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<EuiBlockContentComponent, "eui-block-content", never, { "role": { "alias": "role"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "isBlocked": { "alias": "isBlocked"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
}

declare const EUI_BLOCK_CONTENT: readonly [typeof EuiBlockContentComponent];

export { EUI_BLOCK_CONTENT, EuiBlockContentComponent };
//# sourceMappingURL=eui-components-eui-block-content.d.ts.map
