import { OnDestroy, TemplateRef } from '@angular/core';
import { LoadingStateIndicators } from './components/loading-state-indicators';
import { ProgressBarIndicatorMode } from './components/progress-bar-indicator/progress-bar-indicator.component';
import * as i0 from "@angular/core";
/**
 * @description Componente de estado de carregamento que exibe um indicador animado enquanto
 * um processo assíncrono está em andamento. Suporta bloqueio da janela inteira
 * e diferentes tipos de indicadores visuais.
 * Também pode ser usado como diretiva estrutural `[sLoadingState]`.
 *
 * @example
 * ```html
 * <s-loading-state [loading]="isLoading" [blockWindow]="true">
 *   <p>Conteúdo carregado!</p>
 * </s-loading-state>
 * ```
 *
 * @category Feedback
 */
export declare class LoadingStateComponent implements OnDestroy {
    static nextId: number;
    /**
     * @description Tipo de indicador visual exibido durante o carregamento.
     * - `LoadingStateIndicators.Dots`: indicador de pontos animados (padrão).
     * - `LoadingStateIndicators.Logo`: indicador com logotipo animado.
     *
     * @default LoadingStateIndicators.Dots
     */
    indicator: LoadingStateIndicators;
    /**
     * @description Identificador único do componente. Gerado automaticamente se não informado.
     */
    id: string;
    /**
     * @description Quando `true`, bloqueia a janela inteira durante o carregamento,
     * sobrepondo todo o conteúdo da página com o indicador.
     *
     * @default false
     */
    blockWindow: boolean;
    /**
     * @description Controla o estado de carregamento do componente. Campo obrigatório.
     * Quando `true`, exibe o indicador de carregamento após um breve delay.
     * Quando `false`, remove o indicador após um breve delay (evita flash).
     */
    set loading(loading: boolean);
    get loading(): boolean;
    /**
     * @description Modo da barra de progresso. Usado quando `indicator` é `LoadingStateIndicators.ProgressBar`.
     * - `'percentage'`: exibe o preenchimento proporcional ao `progressBarValue`.
     * - `'intermittent'`: anima a barra indo e voltando.
     *
     * @default 'intermittent'
     */
    progressBarMode: ProgressBarIndicatorMode;
    /**
     * @description Valor de progresso (0–100). Usado quando `indicator` é `LoadingStateIndicators.ProgressBar`
     * e `progressBarMode` é `'percentage'`.
     *
     * @default 0
     */
    progressBarValue: number;
    /**
     * @description Texto exibido abaixo da barra de progresso.
     * Quando omitido, usa `'{value}%'` no modo `'percentage'` ou `'Carregando...'` no modo `'intermittent'`.
     */
    progressBarLabel?: string;
    contents: TemplateRef<any> | null;
    blocking: boolean;
    private _loading;
    private BLOCK_TIMEOUT_VALUE;
    private UNBLOCK_TIMEOUT_VALUE;
    private blockTimeoutId;
    private unblockTimeoutId;
    ngOnDestroy(): void;
    block(): void;
    unblock(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LoadingStateComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LoadingStateComponent, "s-loading-state", never, { "indicator": { "alias": "indicator"; "required": false; }; "id": { "alias": "id"; "required": false; }; "blockWindow": { "alias": "blockWindow"; "required": false; }; "loading": { "alias": "loading"; "required": true; }; "progressBarMode": { "alias": "progressBarMode"; "required": false; }; "progressBarValue": { "alias": "progressBarValue"; "required": false; }; "progressBarLabel": { "alias": "progressBarLabel"; "required": false; }; }, {}, never, ["*"], true, never>;
}
