import { OperationsBase } from "../../base/OperationsBase";
import type { MinimalRule, Rule, RuleDetails } from "../../base/interfaces/apiEntities/RuleInterfaces";
import type { EntityListIterator } from "../../base/iterators/EntityListIterator";
import type { OperationOptions } from "../OperationOptions";
import type { ParamsToCreateRule, ParamsToDeleteRule, ParamsToGetRule, ParamsToGetRuleList, ParamsToUpdateRule } from "./RuleOperationParams";
export declare class RuleOperations<TOptions extends OperationOptions> extends OperationsBase<TOptions> {
    constructor(options: TOptions);
    /**
     * Gets Rules for a specific project. This method returns Rules in their minimal representation. The
     * returned iterator internally queries entities in pages. Wraps the
     * {@link https://developer.bentley.com/apis/validation/operations/get-validation-propertyvalue-rules/ Get Rules}
     * operation from Property Validation API.
     * @param {ParamsToGetRuleList} params parameters for this operation. See {@link ParamsToGetRuleList}.
     * @returns {EntityListIterator<MinimalRule>} iterator for Rule list. See {@link EntityListIterator},
     * {@link MinimalRule}.
     */
    getMinimalList(params: ParamsToGetRuleList): EntityListIterator<MinimalRule>;
    /**
     * Gets Rules for a specific project. This method returns Rules in their full representation. The returned
     * iterator internally queries entities in pages. Wraps the
     * {@link https://developer.bentley.com/apis/validation/operations/get-validation-propertyvalue-rules/ Get Rules}
     * operation from Property Validation API.
     * @param {ParamsToGetRuleList} params parameters for this operation. See {@link ParamsToGetRuleList}.
     * @returns {EntityListIterator<RuleDetails>} iterator for Rule list. See {@link EntityListIterator},
     * {@link RuleDetails}.
     */
    getRepresentationList(params: ParamsToGetRuleList): EntityListIterator<RuleDetails>;
    /**
     * Gets a single Rule identified by id. This method returns a Rule in its full representation.
     * Wraps the {@link https://developer.bentley.com/apis/validation/operations/get-validation-propertyvalue-rule/
     * Get Rule} operation from Property Validation API.
     * @param {ParamsToGetRule} params parameters for this operation. See {@link ParamsToGetRule}.
     * @returns {Promise<RuleDetails>} a Rule with specified id. See {@link RuleDetails}.
     */
    getSingle(params: ParamsToGetRule): Promise<RuleDetails>;
    /**
     * Deletes a single Rule identified by id.
     * Wraps the {@link https://developer.bentley.com/apis/validation/operations/delete-validation-propertyvalue-rule/
     * Delete Rule} operation from Property Validation API.
     * @param {ParamsToDeleteRule} params parameters for this operation. See {@link ParamsToDeleteRule}.
     * @returns {Promise<void>}.
     */
    delete(params: ParamsToDeleteRule): Promise<void>;
    /**
     * Creates a Rule. Wraps the {@link https://developer.bentley.com/apis/validation/operations/create-validation-propertyvalue-rule/
     * Create Rule} operation from Property Validation API.
     * @param {ParamsToCreateRule} params parameters for this operation. See {@link ParamsToCreateRule}.
     * @returns {Promise<Rule>} newly created Rule. See {@link Rule}.
     */
    create(params: ParamsToCreateRule): Promise<Rule>;
    /**
     * Updates a Rule. Wraps the {@link https://developer.bentley.com/apis/validation/operations/update-validation-propertyvalue-rule/
     * Update Rule} operation from Property Validation API.
     * @param {ParamsToUpdateRule} params parameters for this operation. See {@link ParamsToUpdateRule}.
     * @returns {Promise<Rule>} newly updated Rule. See {@link Rule}.
     */
    update(params: ParamsToUpdateRule): Promise<Rule>;
}
//# sourceMappingURL=RuleOperations.d.ts.map