import { AccessToken } from "@itwin/core-bentley";
import { OperationsBase } from "../../common/OperationsBase";
import { IPropertiesClient } from "../interfaces/IPropertiesClient";
import { ECPropertyReference, Property, PropertyList, PropertyModify } from "../interfaces/Properties";
import { EntityListIteratorImpl } from "../../common/iterators/EntityListIteratorImpl";
export declare class PropertiesClient extends OperationsBase implements IPropertiesClient {
    private _baseUrl;
    constructor(basePath?: string);
    createProperty(accessToken: AccessToken, mappingId: string, groupId: string, property: PropertyModify): Promise<Property>;
    deleteProperty(accessToken: AccessToken, mappingId: string, groupId: string, propertyId: string): Promise<Response>;
    getProperty(accessToken: AccessToken, mappingId: string, groupId: string, propertyId: string): Promise<Property>;
    getProperties(accessToken: AccessToken, mappingId: string, groupId: string, top?: number): Promise<PropertyList>;
    getPropertiesIterator(accessToken: AccessToken, mappingId: string, groupId: string, top?: number): EntityListIteratorImpl<Property>;
    updateProperty(accessToken: AccessToken, mappingId: string, groupId: string, propertyId: string, propertyUpdate: PropertyModify): Promise<Property>;
    /**
     * checks if given ECProperty is valid
     * @param {ECPropertyReference} prop
     */
    protected isValidECProperty(prop: ECPropertyReference): boolean;
    /**
     * Constructs the endpoint with the provided params
     * @param mappingId Mapping Id.
     * @param groupId Group Id.
     * @param propertyId Optional group Id.
     * @param top Optional top number.
     * @returns url endpoint.
     */
    protected constructUrl(mappingId: string, groupId: string, propertyId?: string, top?: number): string;
}
//# sourceMappingURL=PropertiesClient.d.ts.map