/** @packageDocumentation
 * @module Tiles
 */
import { ImdlModel } from "../../common/imdl/ImdlModel";
import { ImdlParseError, ImdlParserOptions, ImdlTimeline } from "../../common/imdl/ParseImdlDocument";
/** An object that can parse binary iMdl content into an iMdl document on a worker thread.
 * Parsers are reference-counted. Their lifetimes are typically managed by an [[ImdlDecoder]].
 * The caller is responsible for invoking [[release]] to decrement the reference count when they are finished using the parsing.
 * @see [[acquireImdlDecoder]] to acquire a decoder that uses a parser internally.
 * @see [[acquireImdlParser]] to obtain a parser directly (but you probably don't need to do that).
 */
export interface ImdlParser {
    parse(options: ImdlParserOptions): Promise<ImdlModel.Document | ImdlParseError>;
    release(): void;
}
/** Arguments supplied to [[acquireImdlParser]].
 */
export interface AcquireImdlParserArgs {
    timeline?: ImdlTimeline;
    noWorker?: boolean;
}
export declare function acquireImdlParser(args: AcquireImdlParserArgs): ImdlParser;
//# sourceMappingURL=ImdlParser.d.ts.map