/**
 * Used with the Stopwatch class.
 */
export declare enum StopwatchState {
    Stopped = 1,
    Started = 2
}
/**
 * Represents a readonly view of a `Stopwatch`.
 * @beta
 */
export interface IStopwatchResult {
    /**
     * Displays how long the stopwatch has been executing in a human readable format.
     */
    toString(): string;
    /**
     * Get the duration in seconds.
     */
    get duration(): number;
    /**
     * Return the start time of the most recent stopwatch run.
     */
    get startTime(): number | undefined;
    /**
     * Return the end time of the most recent stopwatch run.
     */
    get endTime(): number | undefined;
}
/**
 * Represents a typical timer/stopwatch which keeps track
 * of elapsed time in between two events.
 */
export declare class Stopwatch implements IStopwatchResult {
    private _startTime;
    private _endTime;
    private _state;
    private _getTime;
    constructor(getTime?: () => number);
    static fromState({ startTime, endTime }: {
        startTime: number;
        endTime: number;
    }): Stopwatch;
    /**
     * Static helper function which creates a stopwatch which is immediately started
     */
    static start(): Stopwatch;
    get state(): StopwatchState;
    /**
     * Starts the stopwatch. Note that if end() has been called,
     * reset() should be called before calling start() again.
     */
    start(): Stopwatch;
    /**
     * Stops executing the stopwatch and saves the current timestamp
     */
    stop(): Stopwatch;
    /**
     * Resets all values of the stopwatch back to the original
     */
    reset(): Stopwatch;
    /**
     * Displays how long the stopwatch has been executing in a human readable format.
     */
    toString(): string;
    /**
     * Get the duration in seconds.
     */
    get duration(): number;
    /**
     * Return the start time of the most recent stopwatch run.
     */
    get startTime(): number | undefined;
    /**
     * Return the end time of the most recent stopwatch run.
     */
    get endTime(): number | undefined;
}
//# sourceMappingURL=Stopwatch.d.ts.map