import { AbstractObject } from './object';
import { Color, Mesh, Scene } from 'three';
import { Topper } from '../model/topper';
import { Paintable } from './paintable';
import { PaintConfig } from '../model/paint-config';
import { TopperAssets } from '../loader/topper/topper-assets';
import { TopperMaterial } from '../webgl/topper-material';
/**
 * Class that handles loading the 3D model of the car topper.
 */
export declare class TopperModel extends AbstractObject implements Paintable {
    mesh: Mesh;
    material: TopperMaterial;
    /**
     * Create an topper object.
     * @param topper the topper
     * @param topperAssets topper assets
     * @param paints the paint config to apply the topper paint
     */
    constructor(topper?: Topper, topperAssets?: TopperAssets, paints?: PaintConfig);
    dispose(): void;
    handleModel(scene: Scene): void;
    setPaintColor(color: Color): void;
    protected copy(other: TopperModel): void;
    clone(): TopperModel;
}
//# sourceMappingURL=topper-model.d.ts.map