import type { Emitter } from '@eolme/vma-engine';
import Route from './Route';
import type { RouteList, RouteLike } from '../types';
declare class History {
    private static _name;
    private _idle;
    private _offset;
    private _stack;
    private _index;
    private _bus;
    private _scheduler;
    routes: RouteList;
    constructor(routes: any);
    get index(): number;
    get location(): string;
    get route(): Readonly<Route>;
    get length(): number;
    push(route: Route): void;
    replace(route: Route): void;
    moveBy(by: number): void;
    moveTo(to: number): void;
    back(): void;
    reset(): void;
    pushAfterMove(prevRoute: Route, nextRoute: Route): void;
    canMoveBy(by: number): boolean;
    canMoveTo(to: number): boolean;
    indexOf(route: RouteLike): number;
    lastIndexOf(route: RouteLike): number;
    check(): void;
    /**
     * History is broken after:
     * - VKPay
     * - Post from notification
     * - Outside manipulations
     */
    private _fixHistory;
    private _initEmitter;
    private _initScheduler;
    private _initHistory;
    private _initListener;
    _createTickWithPopstate(): Promise<void>;
    on: Emitter['on'];
    once: Emitter['once'];
    off: Emitter['off'];
}
export { History };
export default History;
