/**
 * Unit conversion table (milliseconds)
 */
declare const unitConversion: Readonly<{
    readonly s: 1000;
    readonly m: 60000;
    readonly h: 3600000;
    readonly d: 86400000;
    readonly w: 604800000;
    readonly M: 2592000000;
    readonly y: 31536000000;
}>;
/**
 * Duration unit: `s` for seconds, `m` for minutes, `h` for hours, `d` for days, `w` for weeks, `M` for months, `y` for years.
 */
export type DurationUnit = keyof typeof unitConversion;
/**
 * Duration string format: `number + unit`, for example `10m` means 10 minutes.
 */
export type Duration = `${number}${DurationUnit}` | number;
/**
 * Error types that can be thrown by parseDuration
 */
export type DurationError = 'not_a_number' | 'invalid_unit' | 'invalid_format';
/**
 * Parse duration string to milliseconds number.
 *
 * @param duration - Duration string or number, for example `10m` means 10 minutes.
 * @param toUnit - Convert to unit, default is `ms` for milliseconds.
 * @throws {Error} With message 'not_a_number' if duration string doesn't contain a valid number.
 * @throws {Error} With message 'invalid_unit' if the unit is not recognized.
 * @throws {Error} With message 'invalid_format' if the duration format is invalid.
 * @returns Duration in specified unit (or milliseconds by default).
 *
 * @example
 * ```ts
 * parseDuration('10m'); // 600000
 * parseDuration('10m', 's'); // 600
 * parseDuration(120_000, 'm'); // 2
 * ```
 */
export declare const parseDuration: (duration: Duration, toUnit?: DurationUnit) => number;
export {};
//# sourceMappingURL=main.d.ts.map