/** @packageDocumentation
 * @module Tiles
 */
import { Id64Set, Id64String } from "@itwin/core-bentley";
import { RenderFeatureTable, RenderSchedule, TileReadStatus } from "@itwin/core-common";
import { ImdlModel as Imdl } from "./ImdlModel";
import { EdgeParams } from "../internal/render/EdgeParams";
import { VertexTable } from "../internal/render/VertexTable";
import { MaterialParams } from "../render/MaterialParams";
/** Timeline used to reassemble iMdl content into animatable nodes.
 * @internal
 */
export type ImdlTimeline = RenderSchedule.ModelTimeline | RenderSchedule.Script;
/** Options provided to [[ImdlParser.parse]].
 * @internal
 */
export interface ImdlParserOptions {
    data: Uint8Array;
    batchModelId: Id64String;
    is3d: boolean;
    /** The limit on the width and height of a [[VertexTable]]. */
    maxVertexTableSize: number;
    omitEdges?: boolean;
    createUntransformedRootNode?: boolean;
    modelGroups?: Id64Set[];
}
/** Arguments provided to [[parseImdlDocument]].
 * @internal
 */
export interface ParseImdlDocumentArgs extends ImdlParserOptions {
    timeline: ImdlTimeline | undefined;
}
/** Error codes resulting from [[parseImdlDocument]].
 * @internal
 */
export type ImdlParseError = Exclude<TileReadStatus, TileReadStatus.Success>;
/** @internal */
export declare function toVertexTable(imdl: Imdl.VertexTable): VertexTable;
/** @internal */
export declare function edgeParamsFromImdl(imdl: Imdl.EdgeParams): EdgeParams;
/** @internal */
export declare function edgeParamsToImdl(params: EdgeParams): Imdl.EdgeParams;
/** @internal */
export declare function toMaterialParams(mat: Imdl.SurfaceMaterialParams): MaterialParams;
/** @internal */
export declare function convertFeatureTable(imdlFeatureTable: Imdl.FeatureTable, batchModelId: Id64String): RenderFeatureTable;
/** @internal */
export declare function parseImdlDocument(options: ParseImdlDocumentArgs): Promise<Imdl.Document | ImdlParseError>;
//# sourceMappingURL=ParseImdlDocument.d.ts.map