export type StartTimerOptions = string | { name: string; writeStream?: NodeJS.WriteStream; /** @default 1 */ /** @example sample 1 over 10 for 10% progress report */ sampleOver?: number; /** @default false */ estimateTime?: boolean; /** @default 5000 */ sampleTimeInterval?: number; }; export type SetProgressOptions = { totalTick: number; /** @default 0 */ initialTick?: number; /** @default previous value */ sampleOver?: number; /** @default false */ estimateTime?: boolean; /** @default previous value */ sampleTimeInterval?: number; }; export type SetProgress = ((totalTick: number, initialTick?: number, sampleOver?: number) => void) & ((options: SetProgressOptions) => void); export type Timer = ReturnType; /** * @description create timer with progress report and finish-time estimation * */ export declare function startTimer(options: StartTimerOptions): { end: () => void; next(newName: string): void; sampleTimeInterval: number; progress: (msg: string) => void; setProgress: SetProgress; setEstimateProgress: (totalTick: number, sampleRate?: number) => void; tick: (step?: number) => void; }; export declare function defaultTimerWriteStream(): NodeJS.WriteStream;