import { Logger } from "@syntest/logging";
import { Encoding } from "../Encoding";
import { Budget } from "./Budget";
/**
 * Budget for the number of iterations performed during the search process.
 *
 * @author Mitchell Olsthoorn
 */
export declare class IterationBudget<T extends Encoding> implements Budget<T> {
    protected static LOGGER: Logger;
    /**
     * The current number of iterations.
     * @protected
     */
    protected _currentIterations: number;
    /**
     * The maximum number of iterations allowed.
     * @protected
     */
    protected readonly _maxIterations: number;
    /**
     * If the budget is tracking progress
     * @protected
     */
    protected _tracking: boolean;
    /**
     * Constructor.
     *
     * @param maxIterations The maximum number of iterations of this budget
     */
    constructor(maxIterations?: 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=IterationBudget.d.ts.map