import { type DeepImmutable } from '@babylonjs/core/types';
import { type BimObjectAttributeValue } from './bim-format-types';
import type { ModelEntityType, T8PropertySet, T8QuantitySet, T8Unit } from '@twinfinity/t8-client-model';
export interface BimIndexableIfcObject {
    [attribute: string]: BimObjectAttributeValue | undefined;
}
export declare class BimTypeObject implements ModelEntityType {
    readonly id: number;
    readonly globalId: string;
    readonly ifcClass: string;
    readonly tag?: string | undefined;
    readonly name?: string | undefined;
    readonly description?: string | undefined;
    /**
     * Contains type specific attributes (e.g operationMode)
     * Readonly
     */
    readonly attributes: DeepImmutable<BimIndexableIfcObject>;
    constructor(id: number, globalId: string, ifcClass: string, tag?: string | undefined, name?: string | undefined, description?: string | undefined, 
    /**
     * Contains type specific attributes (e.g operationMode)
     * Readonly
     */
    attributes?: DeepImmutable<BimIndexableIfcObject>);
    get className(): string;
    get data(): Record<string, string | number | boolean>;
    readonly propertySets: Record<string, T8PropertySet<T8Unit>>;
    readonly quantitySets: Record<string, T8QuantitySet<T8Unit>>;
}
//# sourceMappingURL=BimTypeObject.d.ts.map