import { SpawnContext } from "../assign-gingerly/types"; import {FaceUpProps} from "../face-up/types"; /** * Configuration/properties that the TimeTicker feature exposes */ export interface FeatureProps { /** * Duration in milliseconds between ticks */ duration: number; /** * Whether the ticker is disabled (stops ticking when true) */ disabled: boolean; } /** * Internal state (not exposed to consumers) */ export interface AllFeatureProps extends FeatureProps { host: WeakRef; } export type AFP = AllFeatureProps; export type PAFP = Partial; /** * Context passed to the feature constructor */ export interface FeatureSpawnContext extends SpawnContext { key: string; optIn: any; injection: any; featuresRegistry: any; shared?: any; } export interface TimeTickerElementEndUserProps extends FaceUpProps { /** * Duration in milliseconds between ticks */ duration: number; items: T[]; name: string; } export interface TimeTickerElementAllProps extends TimeTickerElementEndUserProps{ item: T; idx: number; timeTicker: EventTarget; } export type T = TimeTickerElementAllProps;