import type { Timer as ITimer } from './types'; export declare class Timer implements ITimer { readonly id: string; private startTime; private laps; private stopped; private stopTime?; constructor(id?: string); /** * Stop the timer and return elapsed time in milliseconds */ stop(): number; /** * Record a lap time and return elapsed time since start */ lap(label?: string): number; /** * Get elapsed time without stopping the timer */ getElapsed(): number; /** * Get all recorded laps */ getLaps(): { label?: string; time: number; elapsed: number; }[]; /** * Get timer summary with total time and laps */ getSummary(): { id: string; totalTime: number; isRunning: boolean; laps: { label?: string; time: number; elapsed: number; }[]; }; /** * Reset the timer (starts a new timing session) */ reset(): void; } /** * Utility class for managing multiple timers */ export declare class TimerManager { private timers; /** * Start a new timer */ start(id?: string): Timer; /** * Get an existing timer */ get(id: string): Timer | undefined; /** * Stop and remove a timer */ stop(id: string): number | undefined; /** * Get all active timers */ getActive(): Timer[]; /** * Clear all timers */ clear(): void; /** * Get summary of all timers */ getSummary(): ReturnType[]; } /** * Decorator/wrapper function to time async operations */ export declare function timed(operation: () => Promise, options?: { id?: string; onComplete?: (elapsed: number) => void; }): Promise<{ result: T; elapsed: number; timer: Timer; }>; /** * Decorator/wrapper function to time synchronous operations */ export declare function timedSync(operation: () => T, options?: { id?: string; onComplete?: (elapsed: number) => void; }): { result: T; elapsed: number; timer: Timer; };