/**
 * @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;
}
