export declare class AssignmentProblem {
    static instance(weights: number[][]): NaiveAlgorithmInstance;
    private static copy;
}
export declare abstract class Instance {
    readonly weights: number[][];
    readonly rows: number;
    readonly cols: number;
    constructor(weights: number[][]);
    weightOfAssignment(assignment: number[]): number | undefined;
    abstract solve(): Solution;
}
export declare class Solution {
    readonly assignment: number[];
    readonly weight: number | undefined;
    readonly instance: Instance;
    constructor(instance: Instance, assignment?: number[]);
    isComplete(): boolean;
    isEmpty(): boolean;
    assignColumnInNextRow(col: number): Solution;
    isBetterSolutionThan(other: Solution): boolean;
}
export declare class NaiveAlgorithmInstance extends Instance {
    private currentBestSolution?;
    constructor(weights: number[][]);
    isLowerThanBestWeight(weightToTest: number): boolean;
    updateBestSolutionIfPossible(candidate: Solution): void;
    solve(): Solution;
    doSolve(row: number, solution: Solution): void;
    private minPerRow;
    private sum;
    private rowSortedAscending;
}
//# sourceMappingURL=assignmentProblem.d.ts.map
