import type { IframeMessenger } from "../iframe-messenger.js";
/**
 * Render GLBs in the 3D scene.
 *
 * @remarks
 * Available via {@link auto.Forma | Forma}.{@link index.EmbeddedViewSdk.render | render}.{@link render.RenderApi.glb | glb}.
 */
export declare class RenderGlbApi {
    #private;
    constructor(iframeMessenger: IframeMessenger);
    /**
     * Add a GLB to the scene.
     *
     * @returns Unique identifier of the GLB object in the scene.
     *
     * @example
     * const {id} = await Forma.render.glb.add({ glb }),
     */
    add(request: {
        /** Binary .glb file as an ArrayBuffer */
        glb: ArrayBuffer;
    }): Promise<{
        id: string;
    }>;
    /**
     * Upsert an mesh in the scene. If the mesh does not exist, it will be added.
     *
     * This method can also be used as an upsert.
     *
     * @example
     * await Forma.render.glb.update({ id: "myPreviouslyAddedGlbId", glb })
     */
    update(request: {
        /** Scene identifier of the GLB object to update (or create). */
        id: string;
        /** Binary .glb file as an ArrayBuffer */
        glb: ArrayBuffer;
    }): Promise<void>;
    /**
     * Remove an existing GLB from the scene.
     *
     * @example
     * await Forma.render.glb.remove({ id: "myPreviouslyAddedGlbId" })
     */
    remove(request: {
        /** Scene identifier of the GLB object to remove. */
        id: string;
    }): Promise<void>;
    /**
     * Remove all GLBs added by this API from the scene.
     *
     * Called automatically when the extension is unloaded
     *
     * @example
     * await Forma.render.glb.cleanup()
     */
    cleanup(): Promise<void>;
}
