import type { LogLike } from '../log/like';
import type { Time } from '../time';
import type { TimeUnit } from './unit';
/**
 * Create a new Time instance with the provided unit type and initial value. Wraps an
 * internal data instance only available in factory function closure.
 *
 * Bad input is sanitized rather than rejected: an unsupported `units` value
 * falls back to `'s'` and a non-finite, out-of-safe-range, or unparseable
 * `initial` falls back to `0`. In both cases the substitution is logged via
 * the `log` arg (or a default log if none is supplied) and construction
 * still succeeds.
 *
 * `initial` accepts a number or any duration string supported by
 * `timeValueParse` (e.g. '5', '1.5h', '1h30m'). Date strings should be
 * parsed via `timeValueParseDate` / `timeFromDate` instead.
 *
 * @param units
 * @param initial
 * @param log
 *
 * @category Factories
 */
export declare function timeMake(units: TimeUnit, initial: number | string, log?: LogLike): Time;
