export type PureAction = (node: HTMLElement) => void export interface ActionResult { update: (parameters: Parameters) => void destroy: () => void } export type Action = ( node: HTMLElement, parameters: Parameters, ) => ActionResult export interface UnknownActionResult { update?: (parameters?: Parameters) => void destroy?: () => void } export type UnknownAction = ( node: HTMLElement, parameters?: Parameters, ) => void | undefined | null | UnknownActionResult