import { type Remote } from "comlink";
import type { MessageEvent } from "@foxglove/studio-base/players/types";
import type { PointCloudWithDimensions } from "../video/depth";
type PointCloudFrame = {
    depthFrame: PointCloudWithDimensions;
    width: number;
    height: number;
    fx: number;
    fy: number;
    cx: number;
    cy: number;
    colorFrame: MessageEvent;
    i420Width: number;
    i420Height: number;
};
export declare class DepthToPointcloudWorkerPool {
    #private;
    protected lastUsedWorkerIndex: number;
    protected workerApis: Remote<{
        depthToPointcloudGPU: (depthFramesData: Uint16Array[], depthWidth: number, depthHeight: number, fx: number, fy: number, cx: number, cy: number, i420FramesData: Uint8Array[], i420Width: number, i420Height: number, maxSteroDepth: number, { hasGPU }: {
            hasGPU: boolean;
        }) => Promise<Uint8Array[]>;
    }>[];
    constructor(callback: (originalColorEvent: MessageEvent, originalDepthFrame: PointCloudWithDimensions, processedPointCloud: Uint8Array | null) => void, batchSize?: 3, targetFps?: 9, maxProcessedQueueSize?: 25);
    queueDepthFrame(data: PointCloudFrame): Promise<void>;
    protected setMaxGpuQueueSize(width: number, height: number): void;
    protected tryProcessBatch(force?: boolean): void;
    destroy(): void;
}
export {};
//# sourceMappingURL=poitcloudPoolManager.d.ts.map