import { OperationsBase } from "../../base/OperationsBase";
import type { Run, Test, TestDetails, TestItem } from "../../base/interfaces/apiEntities/TestInterfaces";
import type { EntityListIterator } from "../../base/iterators/EntityListIterator";
import type { OperationOptions } from "../OperationOptions";
import type { ParamsToCreateTest, ParamsToDeleteTest, ParamsToGetTest, ParamsToGetTestList, ParamsToRunTest, ParamsToUpdateTest } from "./TestOperationParams";
export declare class TestOperations<TOptions extends OperationOptions> extends OperationsBase<TOptions> {
    constructor(options: TOptions);
    /**
     * Gets Tests for a specific project. This method returns Tests in their summary representation. The returned
     * iterator internally queries entities in pages. Wraps the
     * {@link https://developer.bentley.com/apis/clash-detection/operations/get-clashdetection-tests/ Get Tests}
     * operation from Clash Detection API.
     * @param {ParamsToGetTestList} params parameters for this operation. See {@link ParamsToGetTestList}.
     * @returns {EntityListIterator<TestItem>} iterator for Test list. See {@link EntityListIterator},
     * {@link TestItem}.
     */
    getList(params: ParamsToGetTestList): EntityListIterator<TestItem>;
    /**
     * Gets a single Test identified by id. This method returns a Test in its full representation.
     * Wraps the {@link https://developer.bentley.com/apis/clash-detection/operations/get-clashdetection-test/
     * Get Test} operation from Clash Detection API.
     * @param {ParamsToGetTest} params parameters for this operation. See {@link ParamsToGetTest}.
     * @returns {Promise<TestDetails>} a Test with specified id. See {@link TestDetails}.
     */
    getSingle(params: ParamsToGetTest): Promise<TestDetails>;
    /**
     * Creates a Test. Wraps the {@link https://developer.bentley.com/apis/clash-detection/operations/create-clashdetection-test/
     * Create Test} operation from Clash Detection API.
     * @param {ParamsToCreateTest} params parameters for this operation. See {@link ParamsToCreateTest}.
     * @returns {Promise<Test>} newly created Test. See {@link Test}.
     */
    create(params: ParamsToCreateTest): Promise<Test>;
    /**
     * Updates a Test. Wraps the {@link https://developer.bentley.com/apis/clash-detection/operations/update-clashdetection-test/
     * Update Test} operation from Clash Detection API.
     * @param {ParamsToUpdateTest} params parameters for this operation. See {@link ParamsToUpdateTest}.
     * @returns {Promise<Test>} newly updated Test. See {@link Test}.
     */
    update(params: ParamsToUpdateTest): Promise<Test>;
    /**
     * Runs a test. Wraps the {@link https://developer.bentley.com/apis/clash-detection/operations/run-clashdetection-test/
     * Run test} operation from Clash Detection API.
     * @param {ParamsToRunTest} params parameters for this operation. See {@link ParamsToRunTest}.
     * @returns {Promise<Run>} newly started Run. See {@link Run}.
     */
    runTest(params: ParamsToRunTest): Promise<Run | undefined>;
    /**
     * Deletes a single Test identified by id.
     * Wraps the {@link https://developer.bentley.com/apis/clash-detection/operations/delete-clashdetection-test/
     * Get Rule} operation from Clash Detection API.
     * @param {ParamsToDeleteTest} params parameters for this operation. See {@link ParamsToDeleteTest}.
     * @returns {Promise<void>}.
     */
    delete(params: ParamsToDeleteTest): Promise<void>;
}
//# sourceMappingURL=TestOperations.d.ts.map