@relax.dev/router
Version:
Router for VKUI
50 lines (49 loc) • 1.4 kB
TypeScript
/**
* @ignore
* @packageDocumentation
*/
import { Route } from './Route';
import { State } from './State';
import { HistoryUpdateType, RouterGenericBase } from './Types';
/**
* @ignore
*/
export declare const HISTORY_UPDATE_PUSH: HistoryUpdateType;
/**
* @ignore
*/
export declare const HISTORY_UPDATE_REPLACE: HistoryUpdateType;
/**
* @ignore
*/
export declare const HISTORY_UPDATE_MOVE: HistoryUpdateType;
/**
* @ignore
*/
export declare type UpdateEventType<T extends RouterGenericBase = RouterGenericBase> = [
Route<T>,
Route<T> | undefined,
boolean,
HistoryUpdateType
];
/**
* @ignore
*/
export declare class History<T extends RouterGenericBase = RouterGenericBase> {
private stack;
private currentIndex;
push(r: Route<T>, s: State<T>): UpdateEventType<T>;
replace(r: Route<T>, s: State<T>): UpdateEventType<T>;
setCurrentIndex(x: number): UpdateEventType<T>;
move(to: number): void;
getLength(): number;
getCurrentIndex(): number;
getCurrentRoute(): Route<T> | undefined;
getCurrentState(): State<T> | undefined;
getHistoryItem(offset?: number): [Route<T>, State<T>] | undefined;
canJumpIntoOffset(offset: number): boolean;
getPageOffset(pageId: T['pageId']): number;
getFirstPageOffset(): number;
getHistoryFromStartToCurrent(): Array<[Route<T>, State<T>]>;
private readonly setLastPanelInView;
}