/// <reference types="node" />
import React from 'react';
import Status from './CodeBlockStatus';
type TimerProps = {
    startTime: number;
    endTime?: number;
    status: Status;
    /** Show completion Date? */
    showDate?: boolean;
    /** className of Timer */
    className?: string;
    /** className of Timer text */
    innerClassName?: string;
};
interface TimerState {
    /** durationDom, used for counting up duration while Processing */
    counter?: ReturnType<typeof setInterval>;
    durationDom: React.RefObject<HTMLSpanElement>;
}
export default class Timer extends React.PureComponent<TimerProps, TimerState> {
    constructor(props: TimerProps);
    static getDerivedStateFromProps(props: TimerProps, state?: TimerState): {
        counter: NodeJS.Timer;
        durationDom: React.RefObject<HTMLSpanElement>;
    };
    componentWillUnmount(): void;
    protected static newCountup(startTime: number, durationDom: TimerState['durationDom']): NodeJS.Timer;
    private static updateCountup;
    render(): JSX.Element;
}
export {};
