The visualSTATE engine deals with events and an event can be seen as an abstraction of something that happens in the environment. This makes it natural to map an interrupt to a visualSTATE event, if the interrupt should have influence on the state machine.
A typical visualSTATE application runs the state machine engine as part of the main loop, if there is an event to process.
Exactly how the interrupt routine communicates with the state machine engine is up to you. But implementation methods range from letting the interrupt routine set a flag that the main loop can detect, to using a fully featured RTOS queue or semaphore.
The structure of your application is the same as usual. If an interrupt service routine generates input to the system of state machines, the routine simply puts an appropriate event into the state machine event queue and returns.