import DeviationStatus from "../models/enums/deviation_status"; import type { ApiBcfBuildingElement, ApiBuiltStatus, ApiDetailedElement, ApiMinimalPlannedBuildingElement, ApiPlannedElement, ApiQueryResource, ApiRunningProcess, ApiScannedElement, ApiUserAction } from "../models"; import type { AssociationIds } from "type_aliases"; import type { User } from "../utilities/get_authorization_headers"; import { ApiPartialProgressElement } from "../models"; export default class ElementApi { /** * Omit limit to read the whole floor. Passing a limit reads one page instead, so very large floors * don't have to build a single multi-gigabyte response. The page shape is the same either way. */ static getPlannedBuildingElements({ projectId, floorId }: AssociationIds, user: User, limit?: number, offset?: number): Promise; /** Pages on the same terms as {@link getPlannedBuildingElements}. */ static getMinimalPlannedBuildingElements({ projectId, floorId }: AssociationIds, user: User, limit?: number, offset?: number): Promise; static updateDeviationStatus({ projectId, floorId, scanDatasetId }: AssociationIds, deviationGlobalId: string, status: DeviationStatus, user: User): Promise; /** @deprecated See getElementDetails */ static getDetailedElement: typeof ElementApi.getElementDetails; static getElementDetails({ projectId, floorId, scanDatasetId }: AssociationIds, elementGlobalId: string, user: User): Promise; /** @deprecated see getManyElementsDetails */ static getDetailedElements: typeof ElementApi.getManyElementsDetails; static getManyElementsDetails({ projectId, floorId, scanDatasetId }: AssociationIds, user: User, viewerIds?: string[]): Promise; /** @deprecated See updateManyElements */ static updateElement({ projectId, floorId, scanDatasetId, globalId }: AssociationIds, element: ApiDetailedElement, user: User): Promise; static updateManyElements({ projectId, floorId, scanDatasetId }: AssociationIds, elements: ApiDetailedElement[], user: User, progressMode?: boolean): Promise<{ [scanDatasetId: string]: ApiDetailedElement[]; }>; static createDetailedElementsQuery({ projectId, floorId, scanDatasetId }: AssociationIds, globalIds: string[], user: User): Promise; static getDetailedElementsQueryResult({ projectId, floorId, scanDatasetId }: AssociationIds, queryId: number, user: User): Promise; static createPlannedBuildingElementsQuery({ projectId, floorId }: AssociationIds, globalIds: string[], user: User): Promise; static getPlannedBuildingElementsQueryResult({ projectId, floorId, }: AssociationIds, queryId: number, user: User): Promise; static getObstructedElementsForFloor({ projectId, floorId }: AssociationIds, user: User): Promise<{ [globalId: string]: string[]; }>; static createObstructedElementsQuery({ projectId, floorId }: AssociationIds, globalIds: string[], user: User): Promise; static getObstructedElementsQueryResult({ projectId, floorId, }: AssociationIds, queryId: number, user: User): Promise<{ [globalId: string]: string[]; }>; static createManualObstructedElements({ projectId, floorId }: AssociationIds, obstructingElementGlobalId: string, obstructedElementsGlobalIds: string[], user: User): Promise<{ [globalId: string]: string[]; }>; static deleteObstructedElements({ projectId, floorId }: AssociationIds, obstructingElementGlobalId: string, obstructedElementsGlobalIds: string[], user: User): Promise<{ [globalId: string]: string[]; }>; /** @deprecated */ static createElements({ projectId, floorId }: AssociationIds, elements: ApiDetailedElement[], user: User): Promise; static matchPlannedBuildingElements({ projectId, floorId }: AssociationIds, matches: { [v1Id: string]: string; }, newElements: ApiPlannedElement[], user: User): Promise; static updatePlannedBuildingElements({ projectId, floorId }: AssociationIds, elements: ApiPlannedElement[], user: User): Promise; static updatePlannedBuildingElementsForViewer({ projectId, floorId, scanDatasetId }: AssociationIds, elements: ApiScannedElement[], progressMode: boolean, user: User): Promise; static updatePlannedBuildingElementsForViewerUndo({ projectId, floorId }: AssociationIds, elements: ApiPlannedElement[], user: User): Promise; static updatePartialProgressForViewer({ projectId, floorId, scanDatasetId }: AssociationIds, partialProgressPercent: number, globalIds: string[], user: User): Promise; static getUserActionsForElement({ projectId, floorId, globalId }: AssociationIds, user: User): Promise; static exportBcfBuildingElements({ projectId, floorId, scanDatasetId }: AssociationIds, user: User): Promise; static exportBcfBuildingElements({ projectId, floorId, scanDatasetId }: AssociationIds, deviationThreshold: number | User, user: User): Promise; static exportSelectedBcfBuildingElements({ projectId, floorId, scanDatasetId }: AssociationIds, globalIds: string[], user?: User): Promise; static clearVerified({ projectId, floorId, scanDatasetId }: AssociationIds, user: User): Promise; static autoVerify({ projectId, floorId, scanDatasetId }: AssociationIds, user: User): Promise; }