@itwin/itwins-client
Version:
iTwins client for the iTwin platform
554 lines • 32.2 kB
TypeScript
/** @packageDocumentation
* @module iTwinsClient
*/
import type { AccessToken } from "@itwin/core-bentley";
import { BaseITwinsApiClient } from "./BaseITwinsApiClient.js";
import type { BentleyAPIResponse, ODataQueryParams, ResultMode } from "./types/CommonApiTypes";
import type { ItwinCreate, ITwinMinimalResponse, ITwinRepresentationResponse, ItwinUpdate, MultiITwinMinimalResponse, MultiITwinRepresentationResponse } from "./types/ITwin";
import type { ITwinExportMultiResponse, ITwinExportRequestInfo, ITwinExportSingleResponse } from "./types/ITwinExport";
import type { ITwinImageResponse } from "./types/ITwinImage.js";
import type { ITwinQueryScope, ITwinsGetQueryArg, ITwinsQueryArg } from "./types/ITwinsQueryArgs.js";
import type { GetMultiRepositoryResourceMinimalResponse, GetMultiRepositoryResourceRepresentationResponse, GetRepositoryResourceMinimalResponse, GetRepositoryResourceRepresentationResponse, MultiRepositoriesResponse, NewRepositoryConfig, PostRepositoryResourceResponse, Repository, ResourceGraphicsResponse, SingleRepositoryResponse } from "./types/Repository";
/** Client API to access the iTwins service.
* @beta
*/
export declare class ITwinsClient extends BaseITwinsApiClient {
constructor(url?: string, maxRedirects?: number);
/** Get a list of iTwin exports for the current user
* @param accessToken The client access token string
* @returns Promise that resolves with an array of export operations
*/
getExports(accessToken: AccessToken): Promise<BentleyAPIResponse<ITwinExportMultiResponse>>;
/** Get details of a specific iTwin export operation
* @param accessToken The client access token string
* @param id The id of the export operation to retrieve
* @returns Promise that resolves with the export operation details
*/
getExport(accessToken: AccessToken, id: string): Promise<BentleyAPIResponse<ITwinExportSingleResponse>>;
/**
* Create a new iTwin export
* @param accessToken The client access token string
* @param args Export query arguments including scope, filters, and output format
* @returns Export response with operation details
*/
createExport(accessToken: AccessToken, args: ITwinExportRequestInfo): Promise<BentleyAPIResponse<ITwinExportSingleResponse>>;
/** Get favorites iTwins accessible to the user
* @param accessToken The client access token string
* @param arg Optional query arguments, for paging, searching, and filtering
* @returns Array of iTwins, may be empty, if no favorites
* @example
* ```typescript
* // Returns MultiITwinMinimalResponse
* const minimal = await client.getFavoritesITwins(token, { resultMode: "minimal" });
*
* // Returns MultiITwinRepresentationResponse
* const detailed = await client.getFavoritesITwins(token, { resultMode: "representation" });
*
* // Defaults to minimal when no resultMode specified
* const defaultResult = await client.getFavoritesITwins(token);
* ```
*/
getFavoritesITwins<T extends ITwinsQueryArg = ITwinsQueryArg>(accessToken: AccessToken, arg?: T): Promise<BentleyAPIResponse<T["resultMode"] extends "representation" ? MultiITwinRepresentationResponse : MultiITwinMinimalResponse>>;
/** Add the specified iTwin to the user's favorites list
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin to add to favorites
* @returns Promise that resolves when the iTwin is successfully added to favorites
*/
addITwinToFavorites(accessToken: AccessToken, iTwinId?: string): Promise<BentleyAPIResponse<undefined>>;
/** Remove the specified iTwin from the user's favorites list
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin to remove from favorites
* @returns Promise that resolves when the iTwin is successfully removed from favorites
*/
removeITwinFromFavorites(accessToken: AccessToken, iTwinId?: string): Promise<BentleyAPIResponse<undefined>>;
/** Upload an image to the specified iTwin
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin to upload the image to
* @param imageBlob The image file as a Blob (must be PNG or JPEG)
* @param contentType The content type of the image ("image/png" | "image/jpeg")
* @returns Promise that resolves with the uploaded image details including URLs for small and large versions
*/
uploadITwinImage(accessToken: AccessToken, iTwinId: string, imageBlob: Blob, contentType: "image/png" | "image/jpeg"): Promise<BentleyAPIResponse<ITwinImageResponse>>;
/** Get the image associated with the specified iTwin
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin to retrieve the image from
* @returns Promise that resolves with the image details including URLs for small and large versions
*/
getITwinImage(accessToken: AccessToken, iTwinId: string): Promise<BentleyAPIResponse<ITwinImageResponse>>;
/** Delete the image associated with the specified iTwin
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin to delete the image from
* @returns Promise that resolves when the image is successfully deleted
*/
deleteITwinImage(accessToken: AccessToken, iTwinId: string): Promise<BentleyAPIResponse<undefined>>;
/** Add the specified iTwin to the user's recently used list
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin to add to the recently used list
* @returns Promise that resolves when the iTwin is successfully added to the recently used list
*/
addITwinToMyRecents(accessToken: AccessToken, iTwinId: string): Promise<BentleyAPIResponse<undefined>>;
/** Get recently used iTwins for the current user
*
* Retrieves a list of recently used iTwins for the calling user. A user can only have 25 recently used iTwins.
* They are returned in order with the most recently used iTwin first in the list.
*
* iTwins with status=Inactive are not returned by default. This improves query performance and reduces clutter
* in user interfaces by filtering out unused iTwins. You should still provide a way for users to see their
* Inactive iTwins if they request them. In the API, you can do this by setting the status parameter or by
* using the includeInactive parameter.
*
* @param accessToken The client access token string
* @param arg Optional query arguments, for paging, searching, and filtering (including status and includeInactive)
* @returns Promise that resolves with an array of recently used iTwins (maximum 25), ordered by most recent first
* @example
* ```typescript
* // Returns MultiITwinMinimalResponse
* const minimal = await client.getRecentUsedITwins(token, { resultMode: "minimal" });
*
* // Returns MultiITwinRepresentationResponse
* const detailed = await client.getRecentUsedITwins(token, { resultMode: "representation" });
*
* // Defaults to minimal when no resultMode specified
* const defaultResult = await client.getRecentUsedITwins(token);
* ```
*/
getRecentUsedITwins<T extends ITwinsQueryArg = ITwinsQueryArg>(accessToken: AccessToken, arg?: T): Promise<BentleyAPIResponse<T["resultMode"] extends "representation" ? MultiITwinRepresentationResponse : MultiITwinMinimalResponse>>;
/** Get global repositories accessible to user with optional filtering
* @param accessToken The client access token string
* @param arg Optional query arguments for repository class and subClass identifiers. If subClass is specified, class is also required.
* @returns Promise that resolves with an array of global repositories, may be empty
* @beta
*/
getGlobalRepositories(accessToken: AccessToken, arg?: {
class: Repository["class"];
} | {
class: Repository["class"];
subClass: Repository["subClass"];
}): Promise<BentleyAPIResponse<MultiRepositoriesResponse>>;
/** Get a specific global repository by ID
* @param accessToken The client access token string
* @param repositoryId The id of the global repository
* @returns Promise that resolves with the global repository details
* @beta
*/
getGlobalRepository(accessToken: AccessToken, repositoryId: string): Promise<BentleyAPIResponse<SingleRepositoryResponse>>;
/** Get a specific global repository resource by ID
* @param accessToken The client access token string for authorization
* @param repositoryId The id of the global repository containing the resource
* @param resourceId The unique id of the global repository resource to retrieve
* @param resultMode Optional result mode controlling the level of detail returned (minimal or representation)
* @returns Promise that resolves with the global repository resource details in the requested format
* @example
* ```typescript
* // Returns GetRepositoryResourceMinimalResponse
* const minimal = await client.getGlobalRepositoryResource(token, "1234", "3954", "minimal");
*
* // Returns GetRepositoryResourceRepresentationResponse
* const detailed = await client.getGlobalRepositoryResource(token, "1234", "3954", "representation");
*
* // Defaults to minimal when no resultMode specified
* const defaultResult = await client.getGlobalRepositoryResource(token, "1234", "3954");
* ```
* @beta
*/
getGlobalRepositoryResource<T extends ResultMode = "minimal">(accessToken: AccessToken, repositoryId: string, resourceId: string, resultMode?: T): Promise<BentleyAPIResponse<T extends "representation" ? GetRepositoryResourceRepresentationResponse : GetRepositoryResourceMinimalResponse>>;
/** Get multiple global repository resources with optional filtering and pagination
* @param accessToken The client access token string for authorization
* @param repositoryId The id of the global repository containing the resources
* @param args Optional query parameters for search, pagination (skip, top)
* @param resultMode Optional result mode controlling the level of detail returned (minimal or representation)
* @returns Promise that resolves with an array of global repository resources in the requested format
* @example
* ```typescript
* // Returns GetMultiRepositoryResourceMinimalResponse
* const minimal = await client.getGlobalRepositoryResources(token, "cesium", undefined, "minimal");
*
* // Returns GetMultiRepositoryResourceRepresentationResponse
* const detailed = await client.getGlobalRepositoryResources(token, "cesium", { top: 10 }, "representation");
*
* // Defaults to minimal when no resultMode specified
* const defaultResult = await client.getGlobalRepositoryResources(token, "cesium");
* ```
* @beta
*/
getGlobalRepositoryResources<T extends ResultMode = "minimal">(accessToken: AccessToken, repositoryId: string, args?: Pick<ODataQueryParams, "search" | "skip" | "top">, resultMode?: T): Promise<BentleyAPIResponse<T extends "representation" ? GetMultiRepositoryResourceRepresentationResponse : GetMultiRepositoryResourceMinimalResponse>>;
/** Get graphics metadata for a global repository resource
* @param accessToken The client access token string for authorization
* @param repositoryId The global repository identifier
* @param resourceId The resource identifier
* @returns Promise that resolves with graphics metadata including content type, URI, and authentication
* @example
* ```typescript
* const graphics = await client.getGlobalResourceGraphics(token, "cesium", "3954");
* ```
* @beta
*/
getGlobalResourceGraphics(accessToken: AccessToken, repositoryId: string, resourceId: string): Promise<BentleyAPIResponse<ResourceGraphicsResponse>>;
/** Create a new iTwin Repository
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin
* @param repository The Repository data to be created
* @returns Promise that resolves with the created repository details
* @beta
*/
createRepository(accessToken: AccessToken, iTwinId: string, repository: NewRepositoryConfig): Promise<BentleyAPIResponse<SingleRepositoryResponse>>;
/** Delete the specified iTwin Repository
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin
* @param repositoryId The id of the Repository to delete
* @returns Promise that resolves when the repository is successfully deleted
*/
deleteRepository(accessToken: AccessToken, iTwinId: string, repositoryId: string): Promise<BentleyAPIResponse<undefined>>;
/** Get repositories accessible to user with optional filtering
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin
* @param arg Optional query arguments for repository class and subClass identifiers. If subClass is specified, class is also required.
* @returns Promise that resolves with an array of repositories, may be empty
*/
getRepositories(accessToken: AccessToken, iTwinId: string, arg?: {
class: Repository["class"];
} | {
class: Repository["class"];
subClass: Repository["subClass"];
}): Promise<BentleyAPIResponse<MultiRepositoriesResponse>>;
/** Get a specific repository by ID
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin
* @param repositoryId The id of the Repository
* @returns Promise that resolves with the repository details
* @beta
*/
getRepository(accessToken: AccessToken, iTwinId: string, repositoryId: string): Promise<BentleyAPIResponse<SingleRepositoryResponse>>;
/** Update the specified iTwin Repository
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin
* @param repositoryId The id of the Repository
* @param repository Updated repository data (excluding id, class, and subClass)
* @returns Promise that resolves with the updated repository
* @beta
*/
updateRepository(accessToken: AccessToken, iTwinId: string, repositoryId: string, repository: Partial<Omit<Repository, "id" | "class" | "subClass" | "capabilities">>): Promise<BentleyAPIResponse<SingleRepositoryResponse>>;
/**
* Create a repository resource for a repository that exposes a resources collection
* @param accessToken - The client access token string for authorization
* @param iTwinId - The id of the iTwin that contains the repository
* @param repositoryId - The id of the repository to add the resource to
* @param repositoryResource - The repository resource to create with required id and displayName properties
* @returns Promise that resolves with the created repository resource details
*
* @beta
*/
createRepositoryResource(accessToken: AccessToken, iTwinId: string, repositoryId: string, repositoryResource: Pick<Repository, "id" | "displayName">): Promise<BentleyAPIResponse<PostRepositoryResourceResponse>>;
/**
* Delete a repository resource
* @param accessToken - The client access token string for authorization
* @param iTwinId - The id of the iTwin that contains the repository
* @param repositoryId - The id of the repository that contains the resource
* @param resourceId - The id repository resource to delete
* @returns Promise that resolves when the iTwin is successfully deleted
*
* @beta
*/
deleteRepositoryResource(accessToken: AccessToken, iTwinId: string, repositoryId: string, resourceId: string): Promise<BentleyAPIResponse<undefined>>;
/**
* Get a specific repository resource by ID
*
* Automatically follows 302 redirects to federated repository endpoints when the repository
* uses a federated architecture. Authentication headers are forwarded transparently.
*
* @param accessToken - The client access token string for authorization
* @param iTwinId - The id of the iTwin that contains the repository
* @param repositoryId - The id of the repository containing the resource
* @param resourceId - The unique id of the repository resource to retrieve
* @param resultMode - Optional result mode controlling the level of detail returned (minimal or representation)
* @returns Promise that resolves with the repository resource details in the requested format
* @example
* ```typescript
* // Returns GetRepositoryResourceMinimalResponse
* const minimal = await client.getRepositoryResource(token, "iTwinId", "repoId", "resourceId", "minimal");
*
* // Returns GetRepositoryResourceRepresentationResponse
* const detailed = await client.getRepositoryResource(token, "iTwinId", "repoId", "resourceId", "representation");
*
* // Defaults to minimal when no resultMode specified
* const defaultResult = await client.getRepositoryResource(token, "iTwinId", "repoId", "resourceId");
* ```
* @beta
*/
getRepositoryResource<T extends ResultMode = "minimal">(accessToken: AccessToken, iTwinId: string, repositoryId: string, resourceId: string, resultMode?: T): Promise<BentleyAPIResponse<T extends "representation" ? GetRepositoryResourceRepresentationResponse : GetRepositoryResourceMinimalResponse>>;
/**
* Get multiple repository resources with optional filtering and pagination
*
* Automatically follows 302 redirects to federated repository endpoints when the repository
* uses a federated architecture. Authentication headers are forwarded transparently.
*
* @param accessToken - The client access token string for authorization
* @param iTwinId - The id of the iTwin that contains the repository
* @param repositoryId - The id of the repository containing the resources
* @param args - Optional query parameters for search, pagination (skip, top)
* @param resultMode - Optional result mode controlling the level of detail returned (minimal or representation)
* @returns Promise that resolves with an array of repository resources in the requested format
* @example
* ```typescript
* // Returns GetMultiRepositoryResourceMinimalResponse
* const minimal = await client.getRepositoryResources(token, "iTwinId", "repoId", undefined, "minimal");
*
* // Returns GetMultiRepositoryResourceRepresentationResponse
* const detailed = await client.getRepositoryResources(token, "iTwinId", "repoId", { search: "test" }, "representation");
*
* // Defaults to minimal when no resultMode specified
* const defaultResult = await client.getRepositoryResources(token, "iTwinId", "repoId");
* ```
* @beta
*/
getRepositoryResources<T extends ResultMode = "minimal">(accessToken: AccessToken, iTwinId: string, repositoryId: string, args?: Pick<ODataQueryParams, "search" | "skip" | "top">, resultMode?: T): Promise<BentleyAPIResponse<T extends "representation" ? GetMultiRepositoryResourceRepresentationResponse : GetMultiRepositoryResourceMinimalResponse>>;
/**
* Get a list of resources from a repository using a capability URI
*
* This method enables direct calls to federated repository endpoints using URIs from
* repository capabilities.
*
* @param accessToken - The client access token string for authorization
* @param uri - The capability URI from repository.capabilities.resources.uri
* @param args - Optional OData query parameters for filtering and pagination
* @param resultMode - Optional result mode controlling the level of detail returned (minimal or representation)
* @returns Promise that resolves with the list of repository resources in the requested format
* @example
* ```typescript
* // Get repository with capabilities
* const repo = await client.getRepository(token, iTwinId, repositoryId);
*
* // Extract capability URI
* const resourcesUri = repo.data?.repository.capabilities?.resources?.uri;
*
* if (resourcesUri) {
* // Returns GetMultiRepositoryResourceMinimalResponse
* const minimal = await client.getRepositoryResourcesByUri(token, resourcesUri, undefined, "minimal");
*
* // Returns GetMultiRepositoryResourceRepresentationResponse
* const detailed = await client.getRepositoryResourcesByUri(token, resourcesUri, undefined, "representation");
*
* // Defaults to minimal when no resultMode specified
* const defaultResult = await client.getRepositoryResourcesByUri(token, resourcesUri);
* }
* ```
* @beta
*/
getRepositoryResourcesByUri<T extends ResultMode = "minimal">(accessToken: AccessToken, uri: string, args?: Pick<ODataQueryParams, "search" | "skip" | "top">, resultMode?: T): Promise<BentleyAPIResponse<T extends "representation" ? GetMultiRepositoryResourceRepresentationResponse : GetMultiRepositoryResourceMinimalResponse>>;
/**
* Get a specific resource from a repository using a capability URI
*
* This method enables direct calls to federated repository endpoints using URIs from
* repository capabilities.
*
* @param accessToken - The client access token string for authorization
* @param uri - The capability URI from repository.capabilities.resources.uri for a specific resource
* @param resultMode - Optional result mode controlling the level of detail returned (minimal or representation)
* @returns Promise that resolves with the repository resource details in the requested format
* @example
* ```typescript
* // Get repository with capabilities
* const repo = await client.getRepository(token, iTwinId, repositoryId);
*
* // Construct resource URI (typically from a previous query or known resource ID)
* const baseUri = repo.data?.repository.capabilities?.resources?.uri;
* const resourceUri = `${baseUri}/resourceId`;
*
* if (resourceUri) {
* // Returns GetRepositoryResourceMinimalResponse
* const minimal = await client.getRepositoryResourceByUri(token, resourceUri, "minimal");
*
* // Returns GetRepositoryResourceRepresentationResponse
* const detailed = await client.getRepositoryResourceByUri(token, resourceUri, "representation");
*
* // Defaults to minimal when no resultMode specified
* const defaultResult = await client.getRepositoryResourceByUri(token, resourceUri);
* }
* ```
* @beta
*/
getRepositoryResourceByUri<T extends ResultMode = "minimal">(accessToken: AccessToken, uri: string, resultMode?: T): Promise<BentleyAPIResponse<T extends "representation" ? GetRepositoryResourceRepresentationResponse : GetRepositoryResourceMinimalResponse>>;
/**
* Retrieves graphics metadata for a specific repository resource using ID-based parameters.
*
*
* Returns graphics content URIs and authentication information needed to access visualization data
* for a resource. The response includes content type, access URI, optional authentication credentials,
* and CesiumJS provider configuration when applicable. This method supports redirect-based routing to
* federated graphics services.
*
* For federated architecture support, consider using getResourceGraphicsByUri with the URI
* from resource.capabilities.graphics.uri instead.
*
* @param accessToken - The client access token string for authorization
* @param iTwinId - The iTwin identifier
* @param repositoryId - The repository identifier
* @param resourceId - The resource identifier
* @returns Promise that resolves with graphics metadata including content type, URI, and authentication
* @example
* ```typescript
* // Get graphics for a specific resource
* const graphics = await client.getResourceGraphics(
* token,
* 'itwin-id',
* 'imodels',
* 'imodel-resource-id'
* );
*
* if (graphics.data) {
* graphics.data.graphics.forEach(graphic => {
* console.log('Content type:', graphic.type);
* console.log('Graphics URI:', graphic.uri);
*
* // Handle authentication if present
* if (graphic.authentication) {
* switch (graphic.authentication.type) {
* case 'Header':
* case 'QueryParameter':
* console.log('Auth key:', graphic.authentication.key);
* break;
* case 'Basic':
* console.log('Username:', graphic.authentication.username);
* break;
* }
* }
* });
* }
* ```
* @beta
*/
getResourceGraphics(accessToken: AccessToken, iTwinId: string, repositoryId: string, resourceId: string): Promise<BentleyAPIResponse<ResourceGraphicsResponse>>;
/**
* Get graphics metadata for a repository resource using a capability URI
*
* This method enables direct calls to federated graphics endpoints using URIs from
* resource capabilities. Instead of constructing URLs from iTwinId, repositoryId, and
* resourceId, it accepts the URI directly from capabilities.graphics.uri.
*
* Note: This method requires that the resource supports graphics capabilities and that
* the access token has appropriate permissions for the target graphics service.
*
* @param accessToken - The client access token string for authorization
* @param uri - The capability URI from resource.capabilities.graphics.uri
* @returns Promise that resolves with the graphics metadata including authentication and provider information
* @example
* ```typescript
* // Get resource with graphics capability
* const resource = await client.getRepositoryResource(token, iTwinId, repositoryId, resourceId);
*
* // Extract graphics capability URI
* const graphicsUri = resource.data?.resource.capabilities?.graphics?.uri;
*
* if (graphicsUri) {
* const graphics = await client.getResourceGraphicsByUri(token, graphicsUri);
*
* if (graphics.data) {
* console.log('Graphics content type:', graphics.data.graphics.contentType);
* console.log('Graphics URI:', graphics.data.graphics.uri);
* }
* }
* ```
* @beta
*/
getResourceGraphicsByUri(accessToken: AccessToken, uri: string): Promise<BentleyAPIResponse<ResourceGraphicsResponse>>;
/** Get a specific iTwin by ID
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin
* @param resultMode (Optional) iTwin result mode: minimal or representation
* @returns Promise that resolves with the iTwin details
* @example
* ```typescript
* // Returns ITwinMinimalResponse
* const minimal = await client.getITwin(token, "id", "minimal");
*
* // Returns ITwinRepresentationResponse
* const detailed = await client.getITwin(token, "id", "representation");
*
* // Defaults to minimal when no resultMode specified
* const defaultResult = await client.getITwin(token, "id");
* ```
*/
getITwin<T extends ResultMode = "minimal">(accessToken: AccessToken, iTwinId: string, resultMode?: T): Promise<BentleyAPIResponse<T extends "representation" ? ITwinRepresentationResponse : ITwinMinimalResponse>>;
/** Get iTwins accessible to the user with optional filtering and pagination
* @param accessToken The client access token string
* @param arg Optional query arguments for paging, searching, filtering, ordering, and field selection
* @returns Promise that resolves with an array of iTwins, may be empty
* @example
* ```typescript
* // Returns MultiITwinMinimalResponse
* const minimal = await client.getITwins(token, { resultMode: "minimal", search: "test" });
*
* // Returns MultiITwinRepresentationResponse
* const detailed = await client.getITwins(token, { resultMode: "representation", filter: "type eq 'Project'" });
*
* // Defaults to minimal when no resultMode specified
* const defaultResult = await client.getITwins(token);
* ```
*/
getITwins<T extends ITwinsGetQueryArg = ITwinsGetQueryArg>(accessToken: AccessToken, arg?: T): Promise<BentleyAPIResponse<T["resultMode"] extends "representation" ? MultiITwinRepresentationResponse : MultiITwinMinimalResponse>>;
/** Create a new iTwin
* @param accessToken The client access token string
* @param iTwin The iTwin data to be created
* @returns Promise that resolves with the created iTwin details
*/
createITwin(accessToken: AccessToken, iTwin: ItwinCreate): Promise<BentleyAPIResponse<ITwinRepresentationResponse>>;
/** Update the specified iTwin
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin to update
* @param iTwin The iTwin data to be updated (partial update supported)
* @returns Promise that resolves with the updated iTwin details
*/
updateItwin(accessToken: AccessToken, iTwinId: string, iTwin: ItwinUpdate): Promise<BentleyAPIResponse<ITwinRepresentationResponse>>;
/** Delete the specified iTwin
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin to delete
* @returns Promise that resolves when the iTwin is successfully deleted
*/
deleteItwin(accessToken: AccessToken, iTwinId: string): Promise<BentleyAPIResponse<undefined>>;
/** Get the primary account accessible to the user
* @param accessToken The client access token string
* @returns Promise that resolves with the primary account details
*/
getPrimaryAccount(accessToken: AccessToken): Promise<BentleyAPIResponse<ITwinMinimalResponse>>;
/**
* Get the account for the specified iTwin
* @param accessToken The client access token string
* @param iTwinId The id of the iTwin
* @param resultMode (Optional) Result mode: minimal or representation
* @returns Promise that resolves with the account details
* @example
* ```typescript
* // Returns ITwinMinimalResponse
* const minimal = await client.getITwinAccount(token, "id", "minimal");
*
* // Returns ITwinRepresentationResponse
* const detailed = await client.getITwinAccount(token, "id", "representation");
*
* // Defaults to minimal when no resultMode specified
* const defaultResult = await client.getITwinAccount(token, "id");
* ```
*/
getITwinAccount<T extends ResultMode = "minimal">(accessToken: AccessToken, iTwinId: string, resultMode?: T): Promise<BentleyAPIResponse<T extends "representation" ? ITwinRepresentationResponse : ITwinMinimalResponse>>;
/**
* Format headers from query arguments including query scope and result mode
* @param arg (Optional) iTwin query arguments
* @returns Headers object with formatted query scope and result mode headers
* @protected
*/
protected getHeaders(arg?: ITwinsQueryArg): Record<string, string>;
/**
* Format result mode parameter into a headers entry
* @param resultMode (Optional) iTwin result mode, defaults to "minimal"
* @returns Headers object with prefer header for result mode
* @protected
*/
protected getResultModeHeaders(resultMode?: ResultMode): Record<string, string>;
/**
* Format query scope parameter into a headers entry
* @param queryScope (Optional) iTwin query scope, defaults to "memberOfItwin"
* @returns Headers object with x-itwin-query-scope header
* @protected
*/
protected getQueryScopeHeaders(queryScope?: ITwinQueryScope): Record<string, string>;
}
//# sourceMappingURL=iTwinsClient.d.ts.map