import { BimApi } from '../../BimApi';
import { BimChangeBlob, BimChangeDwg } from '../../loader/bim-api-client';
import { LayerFailure } from '../Layer';
import { Observable } from '../../loader/babylonjs-import';
import { MarkupSheet2DCollection } from './MarkupSheet2DCollection';
import { MarkupLayerEvent2D } from '../MarkupEntityTypes';
export type DtoVersion = {
    major: number;
    minor: number;
    patch: number;
};
/**
 * @alpha NOTE: This API is experimental, expect breaking changes in the future.
 */
export declare class MarkupSheets2DApi {
    private readonly _api;
    static readonly markupSheetsLayer = "markup_sheets";
    private readonly _layerApi;
    private readonly _version;
    constructor(_api: BimApi);
    /**
     * Gets the current dto (data transfer object) version.
     * This version represents the version of the layer API, this version will be assigned to every sheet collection that is saved via this api.
     * If your local version is lower than the one saved to the layer API you will not be able to load the markups from that sheet collection.
     */
    get version(): DtoVersion;
    /**
     * Load sheets from LayersApi.
     * @param change Change to load the sheets from.
     * @param observableFactory Function that should return the observable that will be notified when a layer event happens.
     * @returns Either the {@link Layer} or a {@link LayerFailure}. Use {@link isFailure} to check if the return value is a {@link LayerFailure} or a {@link Layer}.
     */
    getOrLoadSheets(change: BimChangeDwg | BimChangeBlob, observableFactory: () => Observable<MarkupLayerEvent2D>): Promise<MarkupSheet2DCollection | LayerFailure>;
    /**
     * Unload sheets layer.
     * @param change The change to unload sheets from.
     * @returns True if the sheets layer was unloaded, otherwise false.
     */
    unloadSheets(change: BimChangeDwg | BimChangeBlob): boolean;
    /**
     * @hidden
     */
    private getLayerApi;
    private version101CoordinateConversionToRef;
    private version102ArrowConversion;
}
//# sourceMappingURL=MarkupSheets2DApi.d.ts.map