import { BaseComponent } from '../../../base-component';
import * as i0 from "@angular/core";
/**
 * Internal component to be used by the `*nxLoadingSpinner` directive to render a loading spinner.
 *
 * The static syncAnimationDuration property is configurable to sync the rotation time of the spinners.
 *
 * The icon size is set to 64px by default but can be overridden by updating the iconSize property.
 */
export declare class LoadingSpinnerComponent extends BaseComponent {
    /**
     * Loading icon size in pixels.
     */
    iconSize: import("@angular/core").InputSignalWithTransform<string, number>;
    /**
     * The outlineRatio for the the spinner icon border thickness.
     *
     * This is the used to get a fraction of the icon size to create the border.
     *
     * Example if the icon size is 60px and the outline ratio is 6, the border size will be 10px.
     */
    outlineRatio: import("@angular/core").InputSignal<number>;
    static outlineRatioDefault: number;
    /**
     * The border size of the spinner icon.
     *
     * This is calculated based on the icon size and the outline ratio.
     */
    borderSize: import("@angular/core").Signal<`${number}px`>;
    /**
     * The configurable duration of the sync animation in milliseconds.
     */
    static syncAnimationDuration: number;
    /**
     * Used to bind the sync-animation-duration CSS variable to the host element.
     */
    protected get syncAnimationDuration(): string;
    /**
     * An observable used to add and remove the sync-animation class to keep synced.
     *
     * This is used to ensure that classes are added and removed at the correct time.
     */
    private static readonly sync$;
    /**
     * Used to bind the sync-animation class to the host element.
     */
    protected readonly syncAnimation: import("@angular/core").Signal<boolean | undefined>;
    static ɵfac: i0.ɵɵFactoryDeclaration<LoadingSpinnerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LoadingSpinnerComponent, "ng-component", never, { "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "outlineRatio": { "alias": "outlineRatio"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
