import type { Clark, ClarkEvent, ClarkState, ValidEventsForState, transitions } from "../clark-fsm.js";
type EventsToReachState<Dest extends ClarkState> = {
    [Src in ClarkState]: {
        [EventType in keyof (typeof transitions)[Src]]: (typeof transitions)[Src][EventType] extends Dest ? Extract<ClarkEvent, {
            type: EventType;
        }> : never;
    }[keyof (typeof transitions)[Src]];
}[ClarkState];
type EventsFromStateToState<Src extends ClarkState, Dest extends ClarkState> = ValidEventsForState<Src> & EventsToReachState<Dest>;
export declare const transitionFrom: <Src extends ClarkState>(clark: Clark) => <Dest extends ClarkState>(event: EventsFromStateToState<Src, Dest>) => Promise<void>;
export {};
//# sourceMappingURL=transition.d.ts.map