import { ObjectAccessor } from "./ObjectAccessor.js";
import { NamedObjectAccessor } from "./NamedObjectAccessor.js";
import { IfcPropertySetAccessor } from "./IfcPropertySetAccessor.js";
import { ExpressionValue } from "../value/ExpressionValue.js";
export declare abstract class IfcPropertyAccessor extends NamedObjectAccessor {
    getNestedObjectAccessor(name: string): ObjectAccessor | undefined;
    listNestedObjects(): Array<string>;
    listAttributes(): Array<string>;
    getAttribute(name: string): ExpressionValue | undefined;
    abstract getValue(): ExpressionValue;
    abstract getIfcPropertySetAccessor(): IfcPropertySetAccessor;
}
export declare function isIfcPropertyAccessor(arg: any): arg is IfcPropertyAccessor;
