/**
 * @fileoverview Testset management utilities.
 * Handles testset selection, test generation, and testset operations.
 */
import type { LocalTestset, LocalGenerator, GeneratorScriptCommand } from '../types';
/**
 * Ensures testsets are defined in configuration.
 *
 * @param {LocalTestset[] | undefined} testsets - Testsets array to validate
 *
 * @throws {Error} If no testsets are defined
 */
export declare function ensureTestsetsExist(testsets: LocalTestset[] | undefined): asserts testsets is LocalTestset[];
/**
 * Finds a testset by name.
 *
 * @param {LocalTestset[]} testsets - Available testsets
 * @param {string} name - Testset name
 * @returns {LocalTestset} Found testset
 *
 * @throws {Error} If testset not found
 */
export declare function findTestset(testsets: LocalTestset[], name: string): LocalTestset;
/**
 * Gets generator script commands from a testset.
 * Handles all three formats: commands array, script string, and script file.
 *
 * @param {LocalTestset} testset - Testset configuration
 * @returns {GeneratorScriptCommand[]} Array of generator commands
 *
 * @throws {Error} If no generator script is defined
 * @throws {Error} If script parsing fails
 */
export declare function getGeneratorCommands(testset: LocalTestset): GeneratorScriptCommand[];
/**
 * Generates tests for a specific testset.
 *
 * @param {LocalTestset} testset - Testset to generate
 * @param {LocalGenerator[]} generators - Available generators
 * @param {string} [outputDir] - Custom output directory (defaults to tests/<testset-name>)
 *
 * @throws {Error} If generator script is invalid
 * @throws {Error} If test generation fails
 */
export declare function generateTestsForTestset(testset: LocalTestset, generators: LocalGenerator[], outputDir?: string): Promise<void>;
/**
 * Generates a single test by index within a testset.
 *
 * @param {LocalTestset} testset - Testset containing the test
 * @param {number} testIndex - 1-based test index
 * @param {LocalGenerator[]} generators - Available generators
 * @param {string} [outputDir] - Custom output directory
 *
 * @throws {Error} If test index is out of range
 * @throws {Error} If test generation fails
 */
export declare function generateSingleTest(testset: LocalTestset, testIndex: number, generators: LocalGenerator[], outputDir?: string): Promise<void>;
/**
 * Generates tests for a specific group within a testset.
 *
 * @param {LocalTestset} testset - Testset containing the group
 * @param {string} groupName - Group name
 * @param {LocalGenerator[]} generators - Available generators
 * @param {string} [outputDir] - Custom output directory
 *
 * @throws {Error} If group doesn't exist
 * @throws {Error} If test generation fails
 */
export declare function generateTestsForGroup(testset: LocalTestset, groupName: string, generators: LocalGenerator[], outputDir?: string): Promise<void>;
/**
 * Generates tests for all testsets.
 *
 * @param {LocalTestset[]} testsets - All testsets
 * @param {LocalGenerator[]} generators - Available generators
 *
 * @throws {Error} If any testset generation fails
 */
export declare function generateAllTestsets(testsets: LocalTestset[], generators: LocalGenerator[]): Promise<void>;
/**
 * Lists available testsets with their configurations.
 *
 * @param {LocalTestset[]} testsets - Testsets to list
 * @returns {string[]} Array of formatted testset descriptions
 */
export declare function listTestsets(testsets: LocalTestset[]): string[];
//# sourceMappingURL=testset.d.ts.map