import { Logger } from "@syntest/logging";
import { Encoding } from "../Encoding";
import { Budget } from "./Budget";
/**
 * Budget for the search time of the search process.
 *
 * @author Mitchell Olsthoorn
 */
export declare class SearchTimeBudget<T extends Encoding> implements Budget<T> {
    protected static LOGGER: Logger;
    /**
     * The current number of seconds.
     * @protected
     */
    protected _currentSearchTime: number;
    /**
     * The maximum number of seconds allowed.
     * @protected
     */
    protected _maxSearchTime: number;
    /**
     * The time the tracking started.
     * @protected
     */
    protected _counterTime: number;
    /**
     * If the budget is tracking progress
     * @protected
     */
    protected _tracking: boolean;
    /**
     * Constructor.
     *
     * @param maxSearchTime The maximum allowed time in seconds this budget should use
     */
    constructor(maxSearchTime?: 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=SearchTimeBudget.d.ts.map