import '../../globals.js';
declare class Combination {
    readonly inclusions: boolean[];
    /**
     * Creates a combination that will include elements where list[i] === true
     */
    constructor(inclusions: boolean[]);
    size(): number;
    includes(index: number): boolean;
    /**
     * Applies the combination to an array, returning a new array with the used elements.
     */
    apply<T>(array: T[]): T[];
    /**
     * Creates a new combination that is the inverse of this (includes the opposite elements)
     */
    inverted(): Combination;
    getIncludedIndices(): number[];
    toString(): string;
    equals(combination: Combination): boolean;
    /**
     * Creates an empty combination of a given size.
     */
    static empty(size: number): Combination;
    /**
     * Creates a full combination of a given size.
     */
    static full(size: number): Combination;
    /**
     * Lists all combinations from a given size
     */
    static combinations(size: number): Combination[];
    /**
     * Calls a callback on every single possible permutation of the given Array
     *
     * @param array
     * @param callback - Called on each permuted version of the array possible
     */
    static forEachCombination<T>(array: T[], callback: (array: readonly T[]) => void): void;
    static combinationsOf<T>(array: T[]): T[][];
}
export default Combination;
//# sourceMappingURL=Combination.d.ts.map