import { Meshnode, Node, MeshObject, MeshnodeObject, ModelAnalyticsData, PWF as PWFVersion, Manifest } from './PWFTypes';
import { StreamedGeometryFactory } from '../procoregl/StreamedGeometryFactory';
import { GeometryFactory } from '../procoregl/GeometryFactory';
import type { BootstrapperResult } from '../controllers/Bootstrapper';
import type { DownloadMetaData } from '../procoregl/Models/Models';
import { PWF } from './PWF';
import type { ValidatedFeatureFlags } from '../types/WebviewerOptions';
import type { ResourceDiscriminator } from '../Webviewer';
export declare class PWFProxy implements PWF {
    pwf: PWFVersion;
    constructor(params: {
        manifest: Manifest | undefined;
        downloadMetaData: DownloadMetaData;
        resourceId: number;
        resource: ResourceDiscriminator;
        featureFlags: ValidatedFeatureFlags;
    });
    setStandardModelBuffers(nodeAB: ArrayBuffer, meshnodeAB: ArrayBuffer, meshAB: ArrayBuffer): void;
    setPartitionedModelBuffers(nodeAB: ArrayBuffer, meshnodeAB: ArrayBuffer, partitionAB: ArrayBuffer): void;
    getPwfPartitionContentUrls(): string[];
    initPwfParser(): void;
    parsePwfNodes(): BootstrapperResult;
    parsePwfMeshnodes(): BootstrapperResult;
    parsePwfMeshes(): void;
    initMeshServices(): BootstrapperResult;
    initNodeServices(): void;
    initMeshnodeServices(): void;
    initNodeTree(): BootstrapperResult;
    initNodeTreeBoundingBoxes(): BootstrapperResult;
    allMeshnodes(): Meshnode[];
    getMeshnodeFromIndex(index: number): Meshnode;
    getParentNodeIds(nodeId: number): number[];
    getNodeById(id: number): Node;
    hasNode(id: number): boolean;
    getSubtreeNodeIds(nodeId: number): number[];
    getVirtualMeshnodeIndexesByNodeId(nodeId: number): number[];
    getMeshnodeFromNodeId(nodeId: number): Meshnode;
    getMeshnode(offset: number): Meshnode;
    getNode(offset: number): Node | Meshnode;
    numNodes(): number;
    numMeshnodes(): number;
    numMeshes(): number;
    loadAllMeshGeometryToGPU(): BootstrapperResult;
    loadAllPartitionProxies(): void;
    prefetchPartitions(geometryFactory: StreamedGeometryFactory): BootstrapperResult;
    setGeometryFactory(geometryFactory: GeometryFactory): void;
    globalOffset(): import("../sdk").Vector3;
    root(): Node;
    forEachNode(callback: (node: Node) => void): void;
    forEachMeshnode(callback: (meshnode: Meshnode) => void): void;
    getMeshObject(meshRef: number): MeshObject;
    findFirstObject(meshnodeIndex: number): Node;
    numFirstObjects(): number;
    breadthFirstTraversalNodes(callback: (n: Node | Meshnode) => void): BootstrapperResult;
    getNamedNode(nodeId: number): Node;
    getMeshDataForPartitionedModel(meshnodeIndex: number): Promise<MeshnodeObject>;
    captureModelStats(): number;
    getModelAnalyticsData(): ModelAnalyticsData;
    get virtualMeshnodeIndexOffset(): number;
    set virtualMeshnodeIndexOffset(offset: number);
    isPartitionedModel(): boolean;
    dispose(): void;
}
