import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
/**
 * Screen Loading Component
 *
 * @description
 * A screen-wide loading overlay component for blocking UI interactions during operations.
 * Originally designed for backoffice applications to handle multiple loading states.
 * Can combine multiple observables to show loading when any operation is in progress.
 *
 * @example
 * ```html
 * <!-- Single loading state -->
 * <juvo-screen-loading
 *   [loading$]="dataLoading$"
 *   message="Loading data...">
 * </juvo-screen-loading>
 *
 * <!-- Multiple loading states -->
 * <juvo-screen-loading
 *   [loadingList$]="[saveLoading$, deleteLoading$, updateLoading$]"
 *   message="Processing operations..."
 *   [backdrop]="true">
 * </juvo-screen-loading>
 *
 * <!-- Custom styled loading -->
 * <juvo-screen-loading
 *   [loading$]="criticalOperation$"
 *   message="Critical operation in progress. Please do not refresh the page."
 *   color="#dc2626"
 *   size="large">
 * </juvo-screen-loading>
 * ```
 *
 * @selector juvo-screen-loading
 * @since 2.1.0
 * @author Juvo Rafa Team
 */
export declare class JuvoScreenLoadingComponent {
    /** Single loading observable */
    loading$?: Observable<boolean>;
    /** Array of loading observables to combine */
    loadingList$: Observable<boolean>[];
    /** Loading message to display @default "Loading..." */
    message: string;
    /** Size of the loading spinner @default "large" */
    size: 'small' | 'medium' | 'large';
    /** Color of the spinner @default "#3b82f6" */
    color: string;
    /** Whether to show backdrop @default true */
    backdrop: boolean;
    /** Backdrop opacity @default 0.8 */
    backdropOpacity: number;
    /** Whether to show the loading message @default true */
    showMessage: boolean;
    /**
     * Gets the combined loading state from all sources
     * @returns Observable<boolean> indicating if any loading is in progress
     */
    get combinedLoading$(): Observable<boolean>;
    /**
     * Gets the CSS class for the spinner size
     * @returns CSS class name for the current size
     */
    get sizeClass(): string;
    /**
     * Gets the backdrop style
     * @returns CSS style object for backdrop
     */
    get backdropStyle(): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<JuvoScreenLoadingComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<JuvoScreenLoadingComponent, "juvo-screen-loading", never, { "loading$": { "alias": "loading$"; "required": false; }; "loadingList$": { "alias": "loadingList$"; "required": false; }; "message": { "alias": "message"; "required": false; }; "size": { "alias": "size"; "required": false; }; "color": { "alias": "color"; "required": false; }; "backdrop": { "alias": "backdrop"; "required": false; }; "backdropOpacity": { "alias": "backdropOpacity"; "required": false; }; "showMessage": { "alias": "showMessage"; "required": false; }; }, {}, never, never, true, never>;
}
