router-primitives
Version:
A cross-platform application router. Declarative routing by way of layout primitives
22 lines (21 loc) • 927 B
TypeScript
import { IOutputLocation, IInputLocation, StateObserver } from '../types';
import { ISerializedStateStore, SerializedStateSerializer, SerializedStateDeserializer, ISerializedStateStoreConfig } from '../types/serialized_state';
export default class BrowserStore implements ISerializedStateStore {
kind: 'browser';
serializer: SerializedStateSerializer;
deserializer: SerializedStateDeserializer;
private observers;
private existingLocation;
private stateWatcher;
constructor(config?: ISerializedStateStoreConfig);
cleanUp: () => void;
setState(unserializedLocation: IInputLocation): void;
getState(): IOutputLocation;
subscribeToStateChanges(fn: StateObserver): void;
unsubscribeFromStateChanges(fn: StateObserver): void;
back(): void;
forward(): void;
go(historyChange: number): void;
private _monitorLocation;
private notifyObservers;
}