/** @packageDocumentation
 * @module Elements
 */
import { Id64String } from "@itwin/core-bentley";
import { Point3d } from "@itwin/core-geometry";
import { Code, EntityReferenceSet, ExternalSourceAttachmentProps, ExternalSourceAttachmentRole, ExternalSourceProps, SynchronizationConfigLinkProps } from "@itwin/core-common";
import { InformationReferenceElement, UrlLink } from "./Element";
import { EditTxn } from "./EditTxn";
import { IModelDb } from "./IModelDb";
import { ExternalSourceAttachmentAttachesSource, ExternalSourceIsInRepository } from "./NavigationRelationship";
/** An ExternalSource refers to an 'information container' found in a repository. In some cases, the container is the entire repository.
 * @note The associated ECClass was added to the BisCore schema in version 1.0.13
 * @beta
 */
export declare class ExternalSource extends InformationReferenceElement {
    /** The repository that contains this ExternalSource. */
    repository?: ExternalSourceIsInRepository;
    /** The name of the iModel Connecter that processed this ExternalSource. */
    connectorName?: string;
    /** The version of the iModel Connecter that processed this ExternalSource. */
    connectorVersion?: string;
    /** @internal */
    static get className(): string;
    protected constructor(props: ExternalSourceProps, iModel: IModelDb);
    toJSON(): ExternalSourceProps;
    /** Ensure the [[CodeSpec]] for ExternalSource elements exists, using an explicit transaction.
     * @param txn The active EditTxn.
     */
    static ensureCodeSpec(txn: EditTxn): Id64String;
    /** @deprecated in 5.1.9 - will not be removed until after 2027-05-04. Use ExternalSource.ensureCodeSpec(txn) instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help. */
    static ensureCodeSpec(iModelDb: IModelDb): Id64String;
    /** Create a Code for an ExternalSource element given a name that is meant to be unique within the scope of the iModel.
     * @param iModelDb  The IModelDb
     * @param codeValue The ExternalSource name
     * @see [[ensureCodeSpec]]
     */
    static createCode(iModelDb: IModelDb, codeValue: string): Code;
    protected collectReferenceIds(referenceIds: EntityReferenceSet): void;
}
/** Attachment of an ExternalSource
 * @note The associated ECClass was added to the BisCore schema in version 1.0.13
 * @beta
 */
export declare class ExternalSourceAttachment extends InformationReferenceElement {
    /** The [[ExternalSource]] that is attached by this ExternalSourceAttachment. */
    attaches?: ExternalSourceAttachmentAttachesSource;
    /** Specifies whether the attached [[ExternalSource]] provides context or models a part of the whole. */
    role?: ExternalSourceAttachmentRole;
    /** The translation or offset in global coordinates of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */
    translation?: Point3d;
    /** The Yaw angle (in degrees) of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */
    yaw?: number;
    /** The Pitch angle (in degrees) of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */
    pitch?: number;
    /** The Roll angle (in degrees) of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */
    roll?: number;
    /** The scale of the attached [[ExternalSource]] relative to the ExternalSource that attaches it. */
    scale?: Point3d;
    /** @internal */
    static get className(): string;
    protected constructor(props: ExternalSourceAttachmentProps, iModel: IModelDb);
    toJSON(): ExternalSourceAttachmentProps;
    /** Ensure the [[CodeSpec]] for ExternalSourceAttachment elements exists, using an explicit transaction.
     * @param txn The active EditTxn.
     */
    static ensureCodeSpec(txn: EditTxn): Id64String;
    /** @deprecated in 5.1.9 - will not be removed until after 2027-05-04. Use ExternalSourceAttachment.ensureCodeSpec(txn) instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help. */
    static ensureCodeSpec(iModelDb: IModelDb): Id64String;
    /** Create a Code for an ExternalSourceAttachment element given a name that is meant to be unique within the scope of its parent [[ExternalSource]].
     * @param iModelDb  The IModelDb
     * @param scopeElementId The parent ExternalSource
     * @param codeValue The ExternalSourceAttachment name
     * @see [[ensureCodeSpec]]
     */
    static createCode(iModelDb: IModelDb, scopeElementId: Id64String, codeValue: string): Code;
}
/** A group of ExternalSources that are collectively a source of information for one or more elements.
 * @note The associated ECClass was added to the BisCore schema in version 1.0.13
 * @beta
 */
export declare class ExternalSourceGroup extends ExternalSource {
    /** @internal */
    static get className(): string;
    protected constructor(props: ExternalSourceProps, iModel: IModelDb);
}
/** Link to the Configuration for an iModel Synchronization Job
 * @note The associated ECClass was added to the BisCore schema in version 1.0.13
 * @beta
 */
export declare class SynchronizationConfigLink extends UrlLink {
    /** Date/Time of last successful run of this synchronization configuration */
    lastSuccessfulRun?: string;
    /** @internal */
    static get className(): string;
    protected constructor(props: SynchronizationConfigLinkProps, iModel: IModelDb);
    toJSON(): SynchronizationConfigLinkProps;
}
//# sourceMappingURL=ExternalSource.d.ts.map