import type { Mesh } from "@babylonjs/core/Meshes/mesh";
import type { ILogger } from "../Parser/ILogger";
/**
 * BPMX convert options
 */
export interface BpmxConvertOptions {
    /**
     * Include skinning data into BPMX data (default: true)
     */
    includeSkinningData?: boolean;
    /**
     * Include morph data into BPMX data (default: true)
     */
    includeMorphData?: boolean;
    /**
     * Array that stores weather the material is rendered as translucent in order of mmd materials metadata (default: [])
     */
    translucentMaterials?: boolean[];
    /**
     * Array that stores material alpha evaluation result in order of mmd materials metadata (default: [])
     */
    alphaEvaluateResults?: number[];
}
/**
 * BPMX converter
 */
export declare class BpmxConverter implements ILogger {
    private _loggingEnabled;
    /** @internal */
    log: (message: string) => void;
    /** @internal */
    warn: (message: string) => void;
    /** @internal */
    error: (message: string) => void;
    /**
     * Create a BPMX converter
     */
    constructor();
    /**
     * Convert MmdMesh into BPMX data
     *
     * For convert MmdMesh into BPMX data, you must load MmdMesh with preserveSerilizationData option
     * @param mmdMesh Serializeable MmdMesh
     * @param options Convert options
     * @returns BPMX data as ArrayBuffer
     * @throws {Error} Failed to convert BPMX
     */
    convert(mmdMesh: Mesh, options?: BpmxConvertOptions): ArrayBuffer;
    /**
     * Enable or disable debug logging (default: false)
     */
    get loggingEnabled(): boolean;
    set loggingEnabled(value: boolean);
    private _logEnabled;
    private _logDisabled;
    private _warnEnabled;
    private _warnDisabled;
    private _errorEnabled;
    private _errorDisabled;
}
