import { Object3D } from "three";
import { USDObject, USDWriter, USDZExporterContext } from "./ThreeUSDZExporter.js";
/**
 * Interface for USDZ Exporter Extensions used by {@link USDZExporter}
 */
export interface IUSDExporterExtension {
    /**
     * The name of the extension
     */
    get extensionName(): string;
    /**
     * Called before the document is built
     */
    onBeforeBuildDocument?(context: USDZExporterContext): any;
    /**
     * Called after the document is built
     */
    onAfterBuildDocument?(context: USDZExporterContext): any;
    onExportObject?(object: Object3D, model: USDObject, context: USDZExporterContext): any;
    onAfterSerialize?(context: USDZExporterContext): any;
    onAfterHierarchy?(context: USDZExporterContext, writer: USDWriter): void | Promise<void>;
}
