/** @packageDocumentation
 * @module ElementGeometry
 */
import { ElementGeometry, TextAnnotationProps } from "@itwin/core-common";
import { TextBlockLayout, TextStyleResolver } from "./TextBlockLayout";
import { Id64String } from "@itwin/core-bentley";
/**
 * Render priorities for different parts of a text annotation.
 * These values are used to initialize [GeometryParams.elmPriority]($common).
 * elmPriority is an optional display priority added to [[SubCategoryAppearance.priority]].
 * The net display priority value is used to control z ordering when drawing to 2d views.
 * This property has no effect in 3D views.
 * @beta
 */
export interface RenderPriority {
    annotation?: number;
    annotationLabels?: number;
}
/**
 * Properties required to compute the geometry of a text annotation.
 * @beta
 * @see [[appendTextAnnotationGeometry]] to append the geometry to an [[ElementGeometry.Builder]].
 */
export interface AppendTextAnnotationGeometryArgs {
    /** The annotation to be drawn. Be sure to include a TextBlock with runs or no geometry will be produced. */
    annotationProps: TextAnnotationProps;
    /** Layout provided by calling [[layoutTextBlock]] */
    layout: TextBlockLayout;
    /** [[TextStyleResolver]] used to get styling and scale information for creating geometry. */
    textStyleResolver: TextStyleResolver;
    /** The scale factor to apply to the annotation. Usually comes from the `scaleFactor` of a [[Drawing]] element. */
    scaleFactor: number;
    /** Builder that will be added to in place */
    builder: ElementGeometry.Builder;
    /** The category the element will belong to. This will passed into the [[GeometryParams]] */
    categoryId: Id64String;
    /** The optional sub-category the element will belong to. This will passed into the [[GeometryParams]] */
    subCategoryId?: Id64String;
    /** Whether or not to draw geometry for things like the snap points, range, and anchor point */
    wantDebugGeometry?: boolean;
    /** Optional render priorities for different parts of the annotation. These values are provided to geometryParams.elmPriority. This property does not affect 3d views.*/
    renderPriority?: RenderPriority;
}
/** Constructs the TextBlockGeometry and frame geometry and appends the geometry to the provided builder.
 * @returns true if the geometry was successfully appended.
 * @beta
 */
export declare function appendTextAnnotationGeometry(props: AppendTextAnnotationGeometryArgs): boolean;
//# sourceMappingURL=TextAnnotationGeometry.d.ts.map