import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime'; type EventsTypes = "routeStart" | "routeComplete" | "routeError"; declare class EventsHandler { private static _instance; private constructor(); static get getInstance(): EventsHandler; handlers: Record; on(event: EventsTypes, handler: Function): void; off(event: EventsTypes): void; emit(event: EventsTypes, ...args: any[]): void; } type RouterWithEvents = AppRouterInstance & { events: EventsHandler & { onRouteStart?: () => boolean; onRouteComplete?: () => void; }; }; declare const useRouterWithEvents: () => RouterWithEvents; export { useRouterWithEvents as default };