import * as THREE from 'three';
import { LoadResultType } from './shared';
import { TextureOptions } from "../../types/imageOptions";
import { Fetcher } from "../../utils/ajax";
import { PBMMesh } from "../objects/pbmMesh";
import { IModel } from "./protobuf/pbm";
declare function guessTextureBaseUriFromFileUrl(url: string): string;
export declare function loadPbm(url: string, options?: {
    upAxis?: 'Y' | 'Z';
    light?: boolean;
    textureOptions?: TextureOptions;
    textureBaseUri?: string;
    textureArray?: string[];
    fetcher?: Fetcher;
    onDownloadProgress?: (percent: number, loaded?: number, total?: number) => void;
}): Promise<LoadResultType>;
declare function loadTexture(url: string, textureOptions: TextureOptions, fetcher: Fetcher): Promise<THREE.Texture>;
declare function parse(pbmModel: IModel, light: boolean, textureBaseUri: string, textures: string[], textureOptions: TextureOptions, textureCachePromiseMap: Map<string, Promise<THREE.Texture>> | null, fetcher: Fetcher): Promise<{
    createAt: number;
    description: string;
    objects: PBMMesh[];
    textures: THREE.Texture[];
    dispose: () => void;
}>;
declare function autoRestImageOptionsByTextureLength(textureOptions: TextureOptions, textureLength: number): TextureOptions;
export { parse, loadTexture, autoRestImageOptionsByTextureLength, guessTextureBaseUriFromFileUrl, };
