import type { VNode } from 'vue'; import type { AppConfig } from '@nuxt/schema'; import theme from '#build/b24ui/countdown'; import type { UseComponentIconsProps } from '../composables/useComponentIcons'; import type { ComponentConfig } from '../types/tv'; type Countdown = ComponentConfig; export interface CountdownData { days: number; hours: number; minutes: number; seconds: number; milliseconds: number; totalDays: number; totalHours: number; totalMinutes: number; totalSeconds: number; totalMilliseconds: number; } export interface CountdownProps extends Omit { /** * The element or component this component should render as * @defaultValue 'span' */ as?: any; /** * @defaultValue 'md' */ size?: Countdown['variants']['size']; /** * Emits the countdown events * @defaultValue true */ emitEvents?: boolean; /** * Number of seconds to countdown * @defaultValue 0 */ seconds?: number | string; /** * Should seconds be divided into minutes? * @defaultValue true */ showMinutes?: boolean; /** * Shows a `Circle` around the countdown * @defaultValue false */ useCircle?: boolean; /** * The interval time (in milliseconds) of the countdown progress * @defaultValue 1000 */ interval?: number; /** * Starts the countdown automatically when initialized * @defaultValue true */ needStartImmediately?: boolean; /** * Generate the current time of a specific time zone * @defaultValue Date.now() */ now?: () => number; class?: any; b24ui?: Countdown['slots']; } export interface CountdownEmits { start: []; end: []; abort: []; progress: [value: CountdownData]; } export interface CountdownSlots { leading?(props: { b24ui: Countdown['b24ui']; }): VNode[]; default?(props: CountdownData & { formatTime: string; b24ui: Countdown['b24ui']; }): VNode[]; } declare const _default: typeof __VLS_export; export default _default; declare const __VLS_export: __VLS_WithSlots void; abort: () => void; stop: () => void; restart: () => void; }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { end: () => any; abort: () => any; progress: (value: CountdownData) => any; start: () => any; }, string, import("vue").PublicProps, Readonly & Readonly<{ onEnd?: (() => any) | undefined; onAbort?: (() => any) | undefined; onProgress?: ((value: CountdownData) => any) | undefined; onStart?: (() => any) | undefined; }>, { as: any; emitEvents: boolean; seconds: number | string; showMinutes: boolean; useCircle: boolean; interval: number; needStartImmediately: boolean; now: () => number; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, CountdownSlots>; type __VLS_WithSlots = T & { new (): { $slots: S; }; };