import { millisecondsOf, secondsOf, minutesOf, hoursOf, daysOf } from "./lib";
export declare const Duration: {
    milliseconds: {
        of: typeof millisecondsOf;
        from: (time: MaybeTimeDuration) => number;
    };
    seconds: {
        of: typeof secondsOf;
        from: (time: MaybeTimeDuration) => number;
    };
    minutes: {
        of: typeof minutesOf;
        from: (time: MaybeTimeDuration) => number;
    };
    hours: {
        of: typeof hoursOf;
        from: (time: MaybeTimeDuration) => number;
    };
    days: {
        of: typeof daysOf;
        from: (time: MaybeTimeDuration) => number;
    };
    value: {
        from: (time: MaybeTimeDuration) => number;
        of: (time: MaybeTimeDuration, defaultUnit?: string) => string;
    };
    isTypedDuration: (maybeTypedDuration: any) => maybeTypedDuration is TimeDuration;
};
interface TypedDuration {
    type: string;
    valueType: "TYPED_DURATION";
    value: number;
    unit: string;
}
export interface Seconds extends TypedDuration {
    type: "SECONDS";
    valueType: "TYPED_DURATION";
    unit: "s";
}
export interface Milliseconds extends TypedDuration {
    type: "MILLISECONDS";
    valueType: "TYPED_DURATION";
    unit: "ms";
}
export interface Minutes extends TypedDuration {
    type: "MINUTES";
    valueType: "TYPED_DURATION";
    unit: "m";
}
export interface Hours extends TypedDuration {
    type: "HOURS";
    valueType: "TYPED_DURATION";
    unit: "h";
}
export interface Days extends TypedDuration {
    type: "DAYS";
    valueType: "TYPED_DURATION";
    unit: "d";
}
export declare type TimeDuration = Milliseconds | Seconds | Minutes | Hours | Days;
export declare type MaybeTimeDuration = TimeDuration | number;
export {};
