/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */
import { BimChangeLayer, BimFolder } from '../bim-api-client';
import { DeepImmutable } from '../babylonjs-import';
import { BimChangeUploadable, UploadApiClient, UploadApiClientContentOperation, UploadApiClientContentOptions, UploadApiClientFailure, UploadApiTask } from './UploadApiClient';
import { BimCoreApiClient } from './BimCoreApiClient';
/** See {@link BimUploadApiClient} for documentation.  */
export declare class BimUploadApiClient implements UploadApiClient {
    readonly _apiClient: BimCoreApiClient;
    private static readonly _createUploadSessionResponseType;
    constructor(_apiClient: BimCoreApiClient);
    canCreateFileInFolder(folder: DeepImmutable<BimFolder>): boolean;
    canCreateFileIn({ permissions }: DeepImmutable<BimFolder | BimChangeLayer>): boolean;
    canAppendFileVersion({ permissions, ownerSystem }: DeepImmutable<BimChangeUploadable>): boolean;
    createFileSession<Change extends BimChangeUploadable>(operation: UploadApiClientContentOperation<Change>, o?: DeepImmutable<UploadApiClientContentOptions>): Promise<UploadApiTask<Change> | UploadApiClientFailure>;
    private postCreateUploadSession;
}
//# sourceMappingURL=BimUploadApiClient.d.ts.map