import { OperationsBase } from "../../base/OperationsBase";
import type { MinimalSuppressionRule, SuppressionRuleCreate, SuppressionRuleDetails, SuppressionRuleUpdate } from "../../base/interfaces/apiEntities/SuppressionRuleInterfaces";
import type { EntityListIterator } from "../../base/iterators/EntityListIterator";
import type { OperationOptions } from "../OperationOptions";
import type { ParamsToCreateSuppressionRule, ParamsToDeleteSuppressionRule, ParamsToGetSuppressionRule, ParamsToGetSuppressionRuleList, ParamsToUpdateSuppressionRule } from "./SuppressionRuleOperationParams";
export declare class SuppressionRuleOperations<TOptions extends OperationOptions> extends OperationsBase<TOptions> {
    constructor(options: TOptions);
    /**
     * Gets Suppression Rules for a specific project. This method returns Suppression Rules in their minimal representation. The
     * returned iterator internally queries entities in pages. Wraps the
     * {@link https://developer.bentley.com/apis/clash-detection/operations/get-clashdetection-rules/ Get Suppression Rules}
     * operation from Clash Detection API.
     * @param {ParamsToGetSuppressionRuleList} params parameters for this operation. See {@link ParamsToGetSuppressionRuleList}.
     * @returns {EntityListIterator<MinimalSuppressionRule>} iterator for Suppression Rule list. See {@link EntityListIterator},
     * {@link MinimalSuppressionRule}.
     */
    getMinimalList(params: ParamsToGetSuppressionRuleList): EntityListIterator<MinimalSuppressionRule>;
    /**
     * Gets Suppression Rules for a specific project. This method returns Suppression Rules in their full representation. The returned
     * iterator internally queries entities in pages. Wraps the
     * {@link https://developer.bentley.com/apis/clash-detection/operations/get-clashdetection-rules/ Get Suppression Rules}
     * operation from Clash Detection API.
     * @param {ParamsToGetSuppressionRuleList} params parameters for this operation. See {@link ParamsToGetSuppressionRuleList}.
     * @returns {EntityListIterator<SuppressionRuleDetails>} iterator for Suppression Rule list. See {@link EntityListIterator},
     * {@link SuppressionRuleDetails}.
     */
    getRepresentationList(params: ParamsToGetSuppressionRuleList): EntityListIterator<SuppressionRuleDetails>;
    /**
     * Gets a single Suppression Rule identified by id. This method returns a Suppression Rule in its full representation.
     * Wraps the {@link https://developer.bentley.com/apis/clash-detection/operations/get-clashdetection-rule/
     * Get Suppression Rule} operation from Clash Detection API.
     * @param {ParamsToGetSuppressionRule} params parameters for this operation. See {@link ParamsToGetSuppressionRule}.
     * @returns {Promise<SuppressionRuleDetails>} a Suppression Rule with specified id. See {@link SuppressionRuleDetails}.
     */
    getSingle(params: ParamsToGetSuppressionRule): Promise<SuppressionRuleDetails>;
    /**
     * Deletes a single Suppression Rule identified by id.
     * Wraps the {@link https://developer.bentley.com/apis/clash-detection/operations/delete-clashdetection-rule/
     * Delete Suppression Rule} operation from Clash Detection API.
     * @param {ParamsToDeleteSuppressionRule} params parameters for this operation. See {@link ParamsToDeleteSuppressionRule}.
     * @returns {Promise<void>}.
     */
    delete(params: ParamsToDeleteSuppressionRule): Promise<void>;
    /**
     * Creates a Suppression Rule. Wraps the {@link https://developer.bentley.com/apis/clash-detection/operations/create-clashdetection-rule/
     * Create Suppression Rule} operation from Clash Detection API.
     * @param {ParamsToCreateSuppressionRule} params parameters for this operation. See {@link ParamsToCreateSuppressionRule}.
     * @returns {Promise<SuppressionRule>} newly created Suppression Rule. See {@link SuppressionRule}.
     */
    create(params: ParamsToCreateSuppressionRule): Promise<SuppressionRuleCreate>;
    /**
     * Updates a Suppression Rule. Wraps the {@link https://developer.bentley.com/apis/clash-detection/operations/update-clashdetection-rule/
     * Update Suppression Rule} operation from Clash Detection API.
     * @param {ParamsToUpdateSuppressionRule} params parameters for this operation. See {@link ParamsToUpdateSuppressionRule}.
     * @returns {Promise<SuppressionRule>} newly updated Suppression Rule. See {@link SuppressionRule}.
     */
    update(params: ParamsToUpdateSuppressionRule): Promise<SuppressionRuleUpdate>;
}
//# sourceMappingURL=SuppressionRuleOperations.d.ts.map