import type { EventsHandler } from '../Events'; import { Planet } from "../scene/Planet"; import { Segment } from "../segment/Segment"; import { QuadTreeStrategy } from "../quadTree"; type LoaderEventsList = ["loadend", "layerloadend"]; export interface IResponse { status: string; data?: any; msg?: string; } type IResponseCallback = (response: IResponse) => void; export type FetchCache = 'default' | 'no-store' | 'no-cache' | 'reload' | 'force-cache' | 'only-if-cached'; interface Obj { __id: number; isIdle: boolean; isEqual: (obj: T) => boolean; events: EventsHandler; _planet?: Planet | null; quadTreeStrategy?: QuadTreeStrategy | null; } type QueryParams = { sender?: T; src: string; type: string; filter?: (val: QueryParams) => boolean; options?: any; segment?: Segment; }; type QueueData = { params: QueryParams; callback: IResponseCallback; }; type RequestCounter = { sender: T; counter: number; __requestCounterFrame__: number; }; export declare class Loader> { MAX_REQUESTS: number; events: EventsHandler; protected _loading: number; protected _queue: QueueData[]; protected _senderRequestCounter: RequestCounter[]; protected _promises: { [key: string]: (r: Response) => Promise; }; constructor(maxRequests?: number); load(params: QueryParams, callback: IResponseCallback): void; fetch(params: QueryParams): Promise<{ status: string; data: any; } | { status: string; msg: string; }>; getRequestCounter(sender: T): number; isIdle(sender: T): boolean; protected _checkLoadend(request: RequestCounter, sender: T): void; protected _handleResponse(q: QueueData, response: IResponse): void; protected _exec(): Promise | undefined; abort(sender: T): void; abortAll(): void; get loading(): number; get queue(): QueueData[]; } export {};