import { ArticleItemType, FillLayer, InteractionItemTrigger, ItemState } from '@cntrl-site/sdk'; export interface ItemInteractionCtrl { getState(keys: string[]): StateCSSInfo; getHasTrigger(itemId: string, triggerType: InteractionItemTrigger['triggerEvent']): boolean; sendTrigger(type: 'click' | 'hover-in' | 'hover-out'): void; handleTransitionEnd?: (styleKey: string) => void; handleTransitionStart?: (styleKeys: string[]) => void; receiveChange: () => void; receiveAction: (type: 'play' | 'pause') => void; setActionReceiver: (action: (type: 'play' | 'pause') => void) => void; } export interface InteractionsRegistryPort { register(itemId: string, ctrl: ItemInteractionCtrl): void; getStatePropsForItem(itemId: string): StateProps; getItemAvailableTriggers(itemId: string): Set; notifyItemTrigger(itemId: string, type: TriggerType): void; notifyTransitionEnd(itemId: string): void; } type StateCSSInfo = { styles: Partial>; transition?: string; }; type StateProps = Record, { value?: T; transition?: { timing: string; duration: number; delay: number; }; }>; type TriggerType = 'click' | 'hover-in' | 'hover-out';