/** @packageDocumentation
 * @module Elements
 */
import { Id64String } from "@itwin/core-bentley";
import { CalloutProps, DefinitionElementProps, ElementProps, GeometricElement2dProps, GeometricElement3dProps, GeometricModel3dProps, ModelProps, PhysicalElementProps, PhysicalTypeProps, TypeDefinitionElementProps, ViewAttachmentLabelProps } from "@itwin/core-common";
import { Document, GraphicalElement2d, GraphicalElement3d, GraphicalType2d, GroupInformationElement, PhysicalElement, PhysicalType, SpatialLocationElement } from "../Element";
import { IModelDb } from "../IModelDb";
import { PhysicalMaterial } from "../Material";
import { GraphicalModel3d, GroupInformationModel } from "../Model";
/** A graphical detailing symbol that is placed on a [[Drawing]] or [[Sheet]].
 * @public
 */
export declare abstract class DetailingSymbol extends GraphicalElement2d {
    static get className(): string;
    constructor(props: GeometricElement2dProps, iModel: IModelDb);
}
/** A graphical DetailingSymbol that contains title text.
 * @public
 */
export declare class TitleText extends DetailingSymbol {
    static get className(): string;
    constructor(props: GeometricElement2dProps, iModel: IModelDb);
}
/** A graphical DetailingSymbol that contains a view attachment label.
 * @public
 */
export declare class ViewAttachmentLabel extends DetailingSymbol {
    static get className(): string;
    constructor(props: ViewAttachmentLabelProps, iModel: IModelDb);
}
/** A graphical DetailingSymbol that calls out a reference to another drawing.
 *  @public
 */
export declare abstract class Callout extends DetailingSymbol {
    static get className(): string;
    constructor(props: CalloutProps, iModel: IModelDb);
}
/** A graphical Callout that references a section drawing.
 * @public
 */
export declare class SectionCallout extends Callout {
    static get className(): string;
    constructor(props: CalloutProps, iModel: IModelDb);
}
/** A graphical Callout that references an elevation drawing.
 * @public
 */
export declare class ElevationCallout extends Callout {
    static get className(): string;
    constructor(props: CalloutProps, iModel: IModelDb);
}
/** A graphical Callout that references a plan drawing.
 * @public
 */
export declare class PlanCallout extends Callout {
    static get className(): string;
    constructor(props: CalloutProps, iModel: IModelDb);
}
/** A graphical Callout that references a detail drawing.
 * @public
 */
export declare class DetailCallout extends Callout {
    static get className(): string;
    constructor(props: CalloutProps, iModel: IModelDb);
}
/** A generic container for persisting BisCore:GraphicalElement3d instances.
 * @public
 */
export declare class GenericGraphicalModel3d extends GraphicalModel3d {
    static get className(): string;
    constructor(props: GeometricModel3dProps, iModel: IModelDb);
    /** Insert a BisCore:GraphicalPartition3d and a Generic:GraphicalModel3d that sub-models it.
     * @param iModelDb Insert into this iModel
     * @param parentSubjectId The GraphicalPartition3d will be inserted as a child of this Subject element.
     * @param name The name of the GraphicalPartition3d that the new Generic:GraphicalModel3d will sub-model.
     * @param isPlanProjection Optional value (default is false) that indicates if the contents of this model are expected to be in an XY plane.
     * @returns The Id of the newly inserted GraphicalPartition3d and GraphicalModel3d (same value).
     * @throws [[IModelError]] if there is an insert problem.
     */
    static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string, isPlanProjection?: boolean): Id64String;
}
/** The Generic:Graphic3d class is used when 3D graphics cannot be further classified.
 * @note More-specific BisCore:GraphicalElement3d subclasses should be used wherever possible.
 * @public
 */
export declare class Graphic3d extends GraphicalElement3d {
    static get className(): string;
    constructor(props: GeometricElement3dProps, iModel: IModelDb);
}
/** The Generic:PhysicalObject class is used when physical elements cannot be further classified.
 * @note More-specific BisCore:PhysicalElement subclasses should be used wherever possible.
 * @public
 */
export declare class PhysicalObject extends PhysicalElement {
    static get className(): string;
    constructor(props: PhysicalElementProps, iModel: IModelDb);
}
/** The Generic:SpatialLocation class is used when spatial locations cannot be further classified.
 * @note More-specific BisCore:SpatialLocationElement subclasses should be used wherever possible.
 * @public
 */
export declare class SpatialLocation extends SpatialLocationElement {
    static get className(): string;
    constructor(props: GeometricElement3dProps, iModel: IModelDb);
}
/** A generic container for BisCore:GroupInformationElement instances.
 * @public
 */
export declare class GroupModel extends GroupInformationModel {
    static get className(): string;
    constructor(props: ModelProps, iModel: IModelDb);
    /** Insert a GroupInformationPartition and a GroupModel that breaks it down.
     * @param iModelDb Insert into this iModel
     * @param parentSubjectId The GroupInformationPartition will be inserted as a child of this Subject element.
     * @param name The name of the GroupInformationPartition that the new GroupModel will break down.
     * @returns The Id of the newly inserted GroupModel.
     * @throws [[IModelError]] if there is an insert problem.
     */
    static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string): Id64String;
}
/** The Generic:Group class is used when the group cannot be further classified.
 * @public
 */
export declare class Group extends GroupInformationElement {
    static get className(): string;
    constructor(props: ElementProps, iModel: IModelDb);
}
/** The Generic:Document class is used when a document cannot be further classified.
 * @note More-specific BisCore:Document subclasses should be used wherever possible.
 * @public
 */
export declare class GenericDocument extends Document {
    static get className(): string;
    constructor(props: ElementProps, iModel: IModelDb);
}
/** The Generic:PhysicalMaterial class is used when the physical material cannot be further classified.
 * @note More-specific BisCore:PhysicalMaterial subclasses should be used wherever possible.
 * @public
 */
export declare class GenericPhysicalMaterial extends PhysicalMaterial {
    static get className(): string;
    constructor(props: DefinitionElementProps, iModel: IModelDb);
}
/** The Generic:PhysicalType class is used when the physical type cannot be further classified.
 * @note More-specific BisCore:PhysicalType subclasses should be used wherever possible.
 * @public
 */
export declare class GenericPhysicalType extends PhysicalType {
    static get className(): string;
    constructor(props: PhysicalTypeProps, iModel: IModelDb);
}
/** The Generic:GraphicalType2d class is used when graphical types cannot be further classified.
 * @note More-specific BisCore:GraphicalType2d subclasses should be used wherever possible.
 * @public
 */
export declare class GenericGraphicalType2d extends GraphicalType2d {
    static get className(): string;
    constructor(props: TypeDefinitionElementProps, iModel: IModelDb);
}
//# sourceMappingURL=GenericElements.d.ts.map