/**
 * @module vim-loader
 */
import { SimpleInstanceSubmesh, Submesh } from './mesh';
export type AttributeTarget = Submesh | SimpleInstanceSubmesh;
export declare class ObjectAttribute<T> {
    readonly vertexAttribute: string;
    readonly instanceAttribute: string;
    readonly defaultValue: T;
    readonly toNumber: (value: T) => number;
    private _value;
    private _meshes;
    constructor(value: T, vertexAttribute: string, instanceAttribute: string, meshes: AttributeTarget[] | undefined, toNumber: (value: T) => number);
    updateMeshes(meshes: AttributeTarget[] | undefined): void;
    get value(): T;
    apply(value: T): boolean;
    private applyInstanced;
    private applyMerged;
}
