/*!
 * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
 */
import { Cursor } from "@vertexvis/scene-view-protos/core/protos/paging_pb";
import { PropertyEntry, PropertyKey, PropertyValue, PropertyValueDate, PropertyValueDouble, PropertyValueLong, PropertyValueString, } from "@vertexvis/scene-view-protos/sceneview/protos/domain_pb";
import { ListSceneItemMetadataResponse } from "@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb";
export class ListSceneItemMetadataResponseBuilder {
    constructor() {
        this.response = new ListSceneItemMetadataResponse();
    }
    withCursor(cursorValue) {
        const cursor = new Cursor();
        cursor.setNext(cursorValue);
        this.response.setCursor(cursor);
        return this;
    }
    withProperties(properties) {
        this.response.setEntriesList(properties);
        return this;
    }
    build() {
        return this.response;
    }
}
export class PropertyEntryBuilder {
    constructor() {
        this.entry = new PropertyEntry();
    }
    withId(id) {
        this.entry.setId(id);
        return this;
    }
    withKey(key) {
        this.entry.setKey(key);
        return this;
    }
    withValue(value) {
        this.entry.setValue(value);
        return this;
    }
    build() {
        return this.entry;
    }
}
export class PropertyKeyBuilder {
    constructor() {
        this.key = new PropertyKey();
    }
    withName(name) {
        this.key.setName(name);
        return this;
    }
    withCategory(value) {
        this.key.setCategory(value);
        return this;
    }
    build() {
        return this.key;
    }
}
export class PropertyValueBuilder {
    constructor() {
        this.value = new PropertyValue();
    }
    withString(value) {
        const valueString = new PropertyValueString();
        valueString.setValue(value);
        this.value.setString(valueString);
        return this;
    }
    withLong(value) {
        const valueLong = new PropertyValueLong();
        valueLong.setValue(value);
        this.value.setLong(valueLong);
        return this;
    }
    withDouble(value) {
        const valueDouble = new PropertyValueDouble();
        valueDouble.setValue(value);
        this.value.setDouble(valueDouble);
        return this;
    }
    withDate(value) {
        const valueDate = new PropertyValueDate();
        valueDate.setValue(value);
        this.value.setDate(valueDate);
        return this;
    }
    build() {
        return this.value;
    }
}
//# sourceMappingURL=scene-items-helper.js.map
