import { FileExtraction, PropertiesFile, FileVersion, Attachment } from '../../api/types/FileExtraction';
import { ModelRevision } from '../../api/types/ModelRevision';
import * as FileExtractions from '../../api/bim_file_extractions';
import * as BimModelRevisions from '../../api/bim_model_revisions';
import { Options, GeometryBundle } from '../../types/WebviewerOptions';
import { InternalViewpoint } from '../../viewpoint/types';
import { Model } from '../../api/types/Model';
export type ResourceBundle = ({
    fileExtractionId: FileExtraction['id'];
} | {
    modelId: Model['id'];
    modelRevisionId: ModelRevision['id'];
}) & GeometryBundle;
type Api = {
    getBimFileExtraction: typeof FileExtractions.GetBimFileExtraction;
    getBimModelRevision: typeof BimModelRevisions.GetBimModelRevision;
};
type ApiOptions = Partial<Api>;
export declare const API_MODE: {
    readonly FILE_EXTRACTION: "fileExtraction";
    readonly MODEL_REVISION: "modelRevision";
};
export type ApiMode = (typeof API_MODE)[keyof typeof API_MODE];
export declare class ApiMetaData {
    private store;
    private api;
    apiMode: ApiMode;
    constructor(options: Options & ApiOptions);
    private getFileExtractionBundle;
    get fileVersions(): Promise<FileVersion[]>;
    get attachments(): Promise<Attachment[]>;
    private getGeometryBundleInFileExtractionMode;
    private getGeometryBundleInModelRevisionMode;
    get geometryBundles(): Promise<ResourceBundle[]>;
    get propertyFileIds(): Promise<PropertiesFile['id'][]>;
    get modelRevisionIds(): Promise<number[]>;
    get modelIds(): Promise<number[]>;
    get projectId(): Promise<number>;
    get companyId(): Promise<number>;
    get baseUrl(): Promise<string>;
    get fileExtractionIds(): Promise<number[]>;
    get modelRevision(): Promise<ModelRevision>;
    get homeViewpoint(): Promise<InternalViewpoint | undefined>;
    private get homeViewpointInModelRevisionMode();
}
export {};
