/** @packageDocumentation
 * @module Tiles
 */
import { GuidString } from "@itwin/core-bentley";
import { RealityData, RealityDataSourceKey, RealityDataSourceProps } from "@itwin/core-common";
import { PublisherProductInfo, RealityDataSource, SpatialLocationAndExtents } from "../RealityDataSource";
/** This class provides access to the reality data provider services.
 * It encapsulates access to a reality data from the Google Photorealistic 3D Tiles service.
 * A valid Google 3D Tiles authentication key must be configured for this provider to work (provide the key in the [[RealityDataSourceGoogle3dTilesImpl.createFromKey]] method).
* @internal
*/
export declare class RealityDataSourceGoogle3dTilesImpl implements RealityDataSource {
    readonly key: RealityDataSourceKey;
    /** The URL that supplies the 3d tiles for displaying the Google 3D Tiles tileset. */
    private _tilesetUrl;
    /** Base URL of the Google 3D Tiles tileset. Does not include trailing subdirectories. */
    private _baseUrl;
    /** Search parameters that must be passed down to child tile requests. */
    private _searchParams?;
    /** Google Map Tiles API Key used to access Google 3D Tiles. */
    private _apiKey?;
    /** Function that returns an OAuth token for authenticating with GP3sDT. This token is expected to not contain the "Bearer" prefix. */
    private _getAuthToken?;
    /** This is necessary for Google 3D Tiles tilesets! This tells the iTwin.js tiling system to use the geometric error specified in the tileset rather than any of our own. */
    readonly usesGeometricError = true;
    readonly maximumScreenSpaceError = 16;
    /** Construct a new reality data source.
     * @param props JSON representation of the reality data source
     */
    protected constructor(props: RealityDataSourceProps, apiKey: string | undefined, _getAuthToken?: () => Promise<string | undefined>);
    /**
     * Create an instance of this class from a source key and iTwin context.
     */
    static createFromKey(sourceKey: RealityDataSourceKey, _iTwinId: GuidString | undefined, apiKey: string | undefined, _getAuthToken?: () => Promise<string | undefined>): Promise<RealityDataSource | undefined>;
    get isContextShare(): boolean;
    /**
     * Returns Reality Data if available
    */
    get realityData(): RealityData | undefined;
    get realityDataId(): string | undefined;
    /**
     * Returns Reality Data type if available
     */
    get realityDataType(): string | undefined;
    getTilesetUrl(): string | undefined;
    /** Return the URL of the Google 3D Tiles tileset with its API key included. */
    private getTilesetUrlWithKey;
    protected setBaseUrl(url: string): void;
    /**
     * This method returns the URL to access the actual 3d tiles from the service provider.
     * @returns string containing the URL to reality data.
     */
    getServiceUrl(_iTwinId: GuidString | undefined): Promise<string | undefined>;
    getRootDocument(_iTwinId: GuidString | undefined): Promise<any>;
    /** Returns the tile URL relative to the base URL.
     * If the tile path is a relative URL, the base URL is prepended to it.
     * For both absolute and relative tile path URLs, the search parameters are checked. If the search params are empty, the base URL's search params are appended to the tile path.
     */
    getTileUrl(tilePath: string): string;
    /**
     * Returns the tile content. The path to the tile is relative to the base url of present reality data whatever the type.
     */
    getTileContent(name: string): Promise<ArrayBuffer>;
    /**
     * Returns the tile content in json format. The path to the tile is relative to the base url of present reality data whatever the type.
     */
    getTileJson(name: string): Promise<any>;
    getTileContentType(url: string): "tile" | "tileset";
    /**
     * Gets spatial location and extents of this reality data source
     * @returns spatial location and extents
     * @internal
     */
    getSpatialLocationAndExtents(): Promise<SpatialLocationAndExtents | undefined>;
    /**
     * Gets information to identify the product and engine that create this reality data
     * Will return undefined if cannot be resolved
     * @returns information to identify the product and engine that create this reality data
     * @alpha
     */
    getPublisherProductInfo(): Promise<PublisherProductInfo | undefined>;
}
//# sourceMappingURL=RealityDataSourceGoogle3dTilesImpl.d.ts.map