export type ClockGranularity = 'second' | 'minute' | 'hour' | 'day';
export interface ClockSnapshot {
    hours: number;
    minutes: number;
    seconds: number;
    year: number;
    month: number;
    day: number;
}
export interface UseClockOptions {
    /**
     * How often the clock ticks. Lower fields are zeroed (e.g. `'minute'`
     * reports `seconds: 0`) so the component only re-renders once per unit.
     * @default 'second'
     */
    granularity?: ClockGranularity;
    /** Value used for the server snapshot / first render. */
    initialValue?: ClockSnapshot;
    /** Source of the current time. Override for testing or custom clocks. */
    getDate?: () => Date;
}
export declare const useClock: ({ granularity, initialValue, getDate, }?: UseClockOptions) => {
    date: Date;
    hours: number;
    minutes: number;
    seconds: number;
    year: number;
    month: number;
    day: number;
};
