UNPKG

849 BTypeScriptView Raw
1import { Location, Action, LocationListener, LocationState, UnregisterCallback } from './index';
2import { getConfirmation } from './DOMUtils';
3
4export type PromptFunction<S = LocationState> = (location: Location<S>, action: Action) => any;
5
6export type Prompt<S = LocationState> = PromptFunction<S> | boolean;
7
8export interface TransitionManager<S = LocationState> {
9 setPrompt(nextPrompt?: Prompt<S>): UnregisterCallback;
10 appendListener(listener: LocationListener<S>): UnregisterCallback;
11 notifyListeners(location: Location<S>, action: Action): void;
12 confirmTransitionTo(
13 location: Location<S>,
14 action: Action,
15 getUserConfirmation: typeof getConfirmation,
16 callback: (result: boolean) => void,
17 ): void;
18}
19
20export default function createTransitionManager<S = LocationState>(): TransitionManager<S>;