import type { ComputedRef, PropType, ExtractPropTypes } from 'vue';
import type { Map } from '@qqt-product/api';
export interface ProgressParams {
    days: number;
    hours: number;
    minutes: number;
    seconds: number;
    milliseconds: number;
    totalDays: number;
    totalHours: number;
    totalMinutes: number;
    totalSeconds: number;
    totalMilliseconds: number;
}
export declare function intervalValidator(n: number): boolean;
export declare const countdownProps: {
    /**
     * Starts the countdown automatically when initialized.
     */
    readonly autoStart: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    /**
     * Emits the countdown events.
     */
    readonly emitEvents: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    /**
     * The interval time (in milliseconds) of the countdown progress.
     */
    readonly interval: {
        readonly type: NumberConstructor;
        readonly default: 1000;
        readonly validator: typeof intervalValidator;
    };
    /**
     * Generate the current time of a specific time zone.
     */
    readonly now: {
        readonly type: PropType<() => Promise<Map>>;
        readonly default: null;
    };
    /**
     * The tag name of the component's root element.
     */
    readonly tag: {
        readonly type: StringConstructor;
        readonly default: "span";
    };
    /**
     * The time (in milliseconds) to count down from.
     */
    readonly time: {
        readonly type: NumberConstructor;
        readonly default: 0;
        readonly validator: typeof intervalValidator;
    };
    readonly transform: {
        readonly type: PropType<(<T>(props: T) => T)>;
        readonly default: <T_1>(props: T_1) => T_1;
    };
    readonly start: {
        type: PropType<(() => void) | (() => void)[]>;
        default: unknown;
    };
    readonly progress: {
        type: PropType<((params: ProgressParams) => void) | ((params: ProgressParams) => void)[]>;
        default: unknown;
    };
    readonly abort: {
        type: PropType<(() => void) | (() => void)[]>;
        default: unknown;
    };
    readonly end: {
        type: PropType<(() => void) | (() => void)[]>;
        default: unknown;
    };
};
export type CountdownProps = ExtractPropTypes<typeof countdownProps>;
export interface UseCountdownReturnType {
    classes: ComputedRef<{
        [key: string]: string | boolean;
    }>;
}
