@forest-js/core
Version:
A tiny, functional DOM engine with explicit update and real DOM.
122 lines • 3.38 kB
TypeScript
import { RouterProps } from "../types";
/**
* @function createRouter
* @description Create a router instance
* @param options - Router options
* @returns Router instance
* @example
* ```ts
* const { router, routerStore } = createRouter({ isMultiInstance: true });
* ```
*/
export declare const createRouter: (options?: {
/**
* When true, allows creating multiple router instances.
* Defaults to false.
*
* @type {boolean}
* @default false
* @example
* ```ts
* const options: CreateRouterOptions = { isMultiInstance: true };
* ```
*/
isMultiInstance?: boolean;
}) => {
/**
* @description Router instance
* @returns Router instance
* @example
* ```ts
* const { router } = createRouter();
* ```
*/
router: {
/**
* @description Push a new route
* @param path - Path to push
* @param state - State to push
* @example
* ```ts
* const { router } = createRouter();
* router.push("/", { name: "John" });
* ```
*/
push: (path: string, state?: any) => void;
/**
* @description Go back to the previous route
* @example
* ```ts
* const { router } = createRouter();
* router.back();
* ```
*/
back: () => void;
/**
* @description Replace the current route
* @param path - Path to replace
* @param state - State to replace
* @example
* ```ts
* const { router } = createRouter();
* router.replace("/", { name: "John" });
* ```
*/
replace: (path: string, state: any) => void;
/**
* @description Subscribe to router changes
* @param callback - Callback function
* @returns Unsubscribe function
* @example
* ```ts
* const { router } = createRouter();
* router.subscribe((props) => {
* console.log(props);
* });
* ```
*/
subscribe: <T = any>(callback: (props: RouterProps<T>) => void) => () => void;
/**
* @description Unsubscribe from router changes
* @param unsubscribeFn - Unsubscribe function
* @example
* ```ts
* const { router } = createRouter();
* const unsubscribe = router.subscribe((props) => {
* console.log(props);
* });
* unsubscribe();
* ```
*/
unsubscribe: (unsubscribeFn: () => void) => void;
/**
* @description Get the current router state
* @returns Current router state
* @example
* ```ts
* const { router } = createRouter();
* const state = router.get()
* ```
*/
get: () => RouterProps<any> | null;
};
/**
* @description Router store
* @returns Router store
* @example
* ```ts
* const { routerStore } = createRouter();
* ```
*/
routerStore: import("../types").Store<RouterProps<any> | null>;
/**
* @description Destroy the router instance
* @example
* ```ts
* const { router } = createRouter();
* router.destroy();
* ```
*/
destroyRouter: () => void;
};
//# sourceMappingURL=core.d.ts.map