import { Logger } from "@syntest/logging";
import { Encoding } from "../Encoding";
import { Budget } from "./Budget";
/**
 * Budget for the number of evaluation performed during the search process.
 *
 * @author Mitchell Olsthoorn
 */
export declare class EvaluationBudget<T extends Encoding> implements Budget<T> {
    protected static LOGGER: Logger;
    /**
     * The current number of evaluations.
     * @protected
     */
    protected _currentEvaluations: number;
    /**
     * The maximum number of evaluations allowed.
     * @protected
     */
    protected readonly _maxEvaluations: number;
    /**
     * If the budget is tracking progress
     * @protected
     */
    protected _tracking: boolean;
    /**
     * Constructor.
     *
     * @param maxEvaluations The maximum number of evaluations of this budget
     */
    constructor(maxEvaluations?: number);
    /**
     * @inheritDoc
     */
    getRemainingBudget(): number;
    /**
     * @inheritDoc
     */
    getUsedBudget(): number;
    /**
     * @inheritDoc
     */
    getTotalBudget(): number;
    /**
     * @inheritDoc
     */
    reset(): void;
    /**
     * @inheritDoc
     */
    initializationStarted(): void;
    /**
     * @inheritDoc
     */
    initializationStopped(): void;
    /**
     * @inheritDoc
     */
    searchStarted(): void;
    /**
     * @inheritDoc
     */
    searchStopped(): void;
    /**
     * @inheritDoc
     */
    iteration(): void;
    /**
     * @inheritDoc
     */
    evaluation(): void;
}
//# sourceMappingURL=EvaluationBudget.d.ts.map