import { ObjectAccessor } from "./ObjectAccessor.js";
import { IfcRootObjectAccessor } from "./IfcRootObjectAccessor.js";
import { IfcPropertySetAccessor } from "./IfcPropertySetAccessor.js";
import { IfcPropertyAccessor } from "./IfcPropertyAccessor.js";
export declare abstract class IfcTypeObjectAccessor extends IfcRootObjectAccessor {
    getNestedObjectAccessor(name: string): ObjectAccessor | undefined;
    listNestedObjects(): Array<string>;
    listAttributes(): Array<string>;
    abstract getIfcPropertySetAccessor(name: string): IfcPropertySetAccessor | undefined;
    abstract getIfcPropertyAccessor(name: string): IfcPropertyAccessor | undefined;
    abstract listIfcPropertySetNames(): Array<string>;
    abstract listIfcPropertyNames(): Array<string>;
}
export declare function isIfcTypeObjectAccessor(arg: any): arg is IfcTypeObjectAccessor;
