import { TModuleOnCallbacksProps } from '../../base';
import { TRequiredProps } from '../../internal/requiredProps';
import { Preloader } from '../Preloader';
import { IProgressPreloaderCallbacksMap, IProgressPreloaderResource, IProgressPreloaderMutableProps, IProgressPreloaderStaticProps } from './types';
export * from './types';
type TC = IProgressPreloaderCallbacksMap;
type TS = IProgressPreloaderStaticProps;
type TM = IProgressPreloaderMutableProps;
/**
 * Page preloader for calculating and displaying the loading progress of resources (images, videos, custom elements).
 * Provides smooth progress transitions.
 *
 * [Documentation](https://vevetjs.com/docs/ProgressPreloader)
 *
 * @group Components
 */
export declare class ProgressPreloader extends Preloader<TC, TS, TM> {
    /**
     * Retrieves the default static properties.
     */
    _getStatic(): TRequiredProps<TS>;
    /**
     * Retrieves the default mutable properties.
     */
    _getMutable(): TRequiredProps<TM>;
    /**
     * List of custom resources to preload based on selectors.
     */
    private _resources;
    /**
     * Current interpolated progress value for smooth transitions.
     */
    private _progress;
    /** Animation frame instance for managing smooth progress updates. */
    private _raf;
    constructor(props?: TS & TM & TModuleOnCallbacksProps<TC, ProgressPreloader>, onCallbacks?: TModuleOnCallbacksProps<TC, ProgressPreloader>);
    /** Container source for preloader resources. */
    get resourceContainer(): HTMLElement;
    /**
     * The list of custom resources to preload.
     */
    get resources(): IProgressPreloaderResource[];
    /**
     * Calculates the total number of resources to preload, including their weight.
     */
    get totalWeight(): number;
    /**
     * Loaded weight
     */
    get loadedWeight(): number;
    /**
     * Current loading progress (0 to 1).
     */
    get loadProgress(): number;
    /**
     * Gets the current progress value.
     */
    get progress(): number;
    /**
     * Linear interpolation factor
     */
    private get lerpEase();
    /** Preload images */
    private _fetchImages;
    /** Preload videos */
    private _fetchVideos;
    /** Preload custom resources */
    private _fetchResources;
    /**
     * Adds a custom resource
     * @param id - The custom resource element or identifier to preload.
     * @param weight - The resource weight
     */
    addResource(id: Element | string, weight?: number): void;
    /**
     * Emits a resource load event and updates the count of loaded resources.
     * @param id - The resource element or identifier being loaded.
     */
    resolveResource(id: Element | string, loadedWeight?: number): void;
    /**
     * Handles updates to the preloader's progress, triggering events and animations as needed.
     * @param newProgress - The updated progress value.
     */
    private _handleUpdate;
    /**
     * Resolves when the page and all resources are fully loaded.
     */
    protected _onLoaded(callback: () => void): void;
    /**
     * Cleans up resources and destroys the preloader instance.
     */
    protected _destroy(): void;
}
//# sourceMappingURL=index.d.ts.map