import { CoreBaseLoader } from './_Base';
import { BaseNodeType } from '../../engine/nodes/_Base';
import type { BaseGeoLoaderOutput } from './geometry/Common';
export declare enum GeometryFormat {
    AUTO = "auto",
    JSON = "json"
}
export declare const GEOMETRY_FORMATS: GeometryFormat[];
type MaxConcurrentLoadsCountMethod = () => number;
interface CoreLoaderGeometryOptions {
    url: string;
    format: GeometryFormat;
}
export declare class CoreLoaderGeometry extends CoreBaseLoader<string> {
    protected _options: CoreLoaderGeometryOptions;
    protected _node: BaseNodeType;
    constructor(_options: CoreLoaderGeometryOptions, _node: BaseNodeType);
    private static MAX_CONCURRENT_LOADS_COUNT;
    private static CONCURRENT_LOADS_DELAY;
    private static _inProgressLoadsCount;
    private static _queue;
    private static _maxConcurrentLoadsCountMethod;
    static setMaxConcurrentLoadsCount(method: MaxConcurrentLoadsCountMethod | undefined): void;
    private static _initMaxConcurrentLoadsCount;
    private static _initConcurrentLoadsDelay;
    static incrementInProgressLoadsCount(): void;
    static decrementInProgressLoadsCount(url: string, object?: BaseGeoLoaderOutput): void;
    static waitForMaxConcurrentLoadsQueueFreed(): Promise<void>;
}
export {};
