import { Test } from "./test.js"; export type CompareMethod = (a: Test, b: Test) => number; /** * Represents a collection of tests with helper methods for filtering and sorting. * Extends the native Array for convenient test management. */ export declare class TestCollection extends Array { /** * Initializes a new TestCollection. * @param initialArray - Optional initial array of tests to populate the collection. */ constructor(initialArray?: Test[]); /** * Returns a new array containing the tests sorted by the specified comparison logic. * @param compareMethod - The function used to determine the sort order. * @returns A sorted array of tests. */ sortBy(compareMethod: CompareMethod): Test[]; /** * Filters the collection for tests that exactly match the specified type bitmask. * @param isType - The type bitmask to match. * @returns An array of tests matching the type. */ filterIs(isType: number): Test[]; /** * Filters the collection for tests that exactly match any of the specified type bitmasks. * @param isTypes - The type bitmasks to check against. * @returns An array of tests matching any of the types. */ filterIsEither(...isTypes: number[]): Test[]; /** * Filters the collection for tests that have at least one of the specified type bits set. * @param hasType - The type bit to check for. * @returns An array of tests containing the type bit. */ filterHas(hasType: number): Test[]; /** * Filters the collection for tests that have at least one of the specified type bits set from any of the arguments. * @param hasTypes - The type bits to check for. * @returns An array of tests containing any of the type bits. */ filterHasEither(...hasTypes: number[]): Test[]; } /** * SortByEnum */ export declare enum SortByEnum { /** * Sorts groups and tests */ "all" = "all", /** * Sort groups only */ "groupsOnly" = "groupsOnly", /** * Sort tests only */ "testsOnly" = "testsOnly", /** * No sort */ "none" = "none" } export declare const SortByMethod: Record; //# sourceMappingURL=testCollection.d.ts.map