import * as i0 from '@angular/core';
/**
* @description
* EuiBlockDocumentComponent creates a document overlay that can be toggled into
* a blocked state. When blocked, a loading indicator is displayed.
* Uses OnPush change detection strategy for better performance.
*
* @usageNotes
* #### Typically placed at app root level
* ```html
*
* ```
*
* #### Trigger blocking from component
* ```html
*
* ```
*
* ```ts
* import { EuiAppShellService } from '@eui/core';
*
* private appShellService = inject(EuiAppShellService);
* isProcessing = false;
*
* blockDocument(): void {
* this.appShellService.isBlockDocumentActive = true;
*
* // Simulate async operation
* setTimeout(() => {
* this.appShellService.isBlockDocumentActive = false;
* }, 2000);
* }
* ```
*
* ### Accessibility
* - Uses role="region" for semantic landmark identification
* - aria-label provides context about the blocked state
* - Loading indicator is announced to screen readers
* - Prevents interaction with underlying content when blocked
* - Focus is trapped within the overlay during blocked state
*
* ### Notes
* - Typically controlled via EuiAppShellService.isBlockDocumentActive property
* - Creates full-page overlay when isBlocked is true
* - Displays loading spinner automatically during blocked state
* - Should be placed at application root level for full document coverage
* - Use for long-running operations that require blocking entire UI
* - Different from eui-block-content which blocks specific sections
* - Automatically handles z-index to appear above all content
* - Consider user experience - use sparingly for truly blocking operations
*/
declare class EuiBlockDocumentComponent {
/**
* Applies CSS classes to the host element.
* Always includes 'eui-block-document' and conditionally adds
* 'eui-block-document--blocked' when isBlocked is true.
*
* @returns String of space-separated CSS classes
*/
get cssClasses(): string;
/**
* Controls whether the document is in blocked state.
* When true, displays the loading indicator.
*
* @default false
*/
isBlocked: boolean;
/**
* ARIA role for the document component.
*
* @default 'region'
*/
role: string;
/**
* ARIA label for the document component.
*
* @default 'eUI Block Document'
*/
ariaLabel: string;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
static ngAcceptInputType_isBlocked: unknown;
}
declare const EUI_BLOCK_DOCUMENT: readonly [typeof EuiBlockDocumentComponent];
export { EUI_BLOCK_DOCUMENT, EuiBlockDocumentComponent };
//# sourceMappingURL=eui-components-eui-block-document.d.ts.map