import { BimContainer, BimContainerInfo, BimChangeIfc, TwinfinityInfo, BimChange, BimUserInfo } from '../bim-api-client';
import { TypedResponse } from '../../http';
import { TwinfinityApiClient } from './TwinfinityApiClient';
import { LayerApiClient } from './LayerApiClient';
import { MessageApiClient } from './MessageApiClient';
import { UploadApiClient } from './UploadApiClient';
import { SettingsApiClient } from './SettingsApiClient';
import { MapBoxApiClient } from './MapBoxApiClient';
import type { ITwinClient } from '@twinfinity/twin';
/**
 * Loads container and IFC data from local files. Mostly used for dev purposes.
 * @hidden
 */
export declare class BimDevApiClient implements TwinfinityApiClient {
    private containersAndFiles;
    private readonly _rootDummyProjectId;
    private readonly _anchorElement;
    readonly layers: LayerApiClient;
    readonly messages: MessageApiClient;
    readonly upload: UploadApiClient;
    readonly settings: SettingsApiClient;
    readonly mapBox: MapBoxApiClient;
    readonly twins: ITwinClient;
    readonly id = "dev-api-client";
    private readonly _mockUser;
    constructor(containersAndFiles: {
        [key: string]: string[];
    });
    canDelete(change: BimChange): boolean;
    deleteChanges(changesToDelete: Pick<BimChange, 'id' | 'etag'>[]): Promise<TypedResponse<number>[]>;
    getUserInfo(): Promise<TypedResponse<Omit<BimUserInfo, 'id'>>>;
    /** See {@link TwinfinityApiClient.getContainerInfo} */
    getContainerInfo(containerOrUrl?: BimContainer | URL): Promise<TypedResponse<BimContainerInfo>>;
    /** See {@link TwinfinityApiClient.getContainers} */
    getContainers(id?: string): Promise<BimContainer[]>;
    /** See {@link TwinfinityApiClient.getIfcChanges} */
    getIfcChanges(containerOrUrl: BimContainer | URL, olderThan?: Date): Promise<BimChangeIfc[]>;
    getChanges<T extends BimChange = BimChange>(containerOrUrl: BimContainer | URL, options: {
        id: string;
    } | {
        query: string;
    }): Promise<TypedResponse<T[]>>;
    /** See {@link TwinfinityApiClient.get} */
    get<T>(absoluteOrRelativeUrl: URL | string, converter: (r: Response) => TypedResponse<T>, init?: RequestInit): Promise<TypedResponse<T>>;
    /** See {@link TwinfinityApiClient.getInfo} */
    getInfo(): Promise<TwinfinityInfo>;
    private makeAbsoluteUrl;
    private getContainerId;
}
//# sourceMappingURL=BimDevApiClient.d.ts.map