import { AddSuite, DeleteSuite, Suite, UpdateSuite } from '../models/suites';
import { BaseService } from './base';
/**
 * Service for managing TestRail test suites.
 */
export declare class SuiteService extends BaseService {
    /**
     * Returns a list of test suites for a project.
     * @param projectId - The ID of the project
     * @returns A list of test suites
     * @throws {Error} 400 - Invalid or unknown project
     * @throws {Error} 403 - No access to the project
     * @throws {Error} 429 - Too many requests (TestRail Cloud only)
     */
    list(projectId: number): Promise<Suite[]>;
    /**
     * Returns an existing test suite.
     * @param suiteId - The ID of the test suite
     * @returns The test suite
     * @throws {Error} 400 - Invalid or unknown test suite
     * @throws {Error} 403 - No access to the project
     * @throws {Error} 429 - Too many requests (TestRail Cloud only)
     */
    get(suiteId: number): Promise<Suite>;
    /**
     * Creates a new test suite.
     * @param projectId - The ID of the project the test suite should be added to
     * @param suite - The test suite data to add
     * @returns The created test suite
     * @throws {Error} 400 - Invalid or unknown project
     * @throws {Error} 403 - No permissions to add test suites or no access to the project
     * @throws {Error} 429 - Too many requests (TestRail Cloud only)
     */
    add(projectId: number, suite: AddSuite): Promise<Suite>;
    /**
     * Updates an existing test suite (partial updates are supported).
     * @param suiteId - The ID of the test suite
     * @param suite - The test suite data to update
     * @returns The updated test suite
     * @throws {Error} 400 - Invalid or unknown test suite
     * @throws {Error} 403 - No permissions to modify test suites or no access to the project
     * @throws {Error} 429 - Too many requests (TestRail Cloud only)
     */
    update(suiteId: number, suite: UpdateSuite): Promise<Suite>;
    /**
     * Deletes an existing test suite.
     * Note: Deleting a test suite cannot be undone and also deletes all active test runs & results, i.e. test runs & results that weren't closed (archived) yet.
     * @param suiteId - The ID of the test suite
     * @param options - Options for deletion
     * @throws {Error} 400 - Invalid or unknown test suite
     * @throws {Error} 403 - No permissions to delete test suites or no access to the project
     * @throws {Error} 429 - Too many requests (TestRail Cloud only)
     */
    delete(suiteId: number, options?: DeleteSuite): Promise<void>;
}
