/**
 * Hypen Router - Declarative routing system
 * Integrated with Hypen's reactive state management
 */
export type RouteMatch = {
    params: Record<string, string>;
    query: Record<string, string>;
    path: string;
};
export type RouteState = {
    currentPath: string;
    params: Record<string, string>;
    query: Record<string, string>;
    previousPath: string | null;
};
export type RouteChangeCallback = (route: RouteState) => void;
/**
 * Hypen Router - Manages application routing with pattern matching
 */
export declare class HypenRouter {
    private state;
    private subscribers;
    private isInitialized;
    private isUpdating;
    private browserListeners;
    constructor();
    /**
     * Initialize browser history sync
     */
    private initializeBrowserSync;
    /**
     * Get path from browser URL (supports both hash and pathname)
     */
    private getPathFromBrowser;
    /**
     * Parse query string from URL
     */
    private parseQuery;
    /**
     * Navigate to a new path
     */
    push(path: string): void;
    /**
     * Replace current path without adding to history
     */
    replace(path: string): void;
    /**
     * Go back in history
     */
    back(): void;
    /**
     * Go forward in history
     */
    forward(): void;
    /**
     * Update the current path
     */
    private updatePath;
    /**
     * Get current path
     */
    getCurrentPath(): string;
    /**
     * Get current route params
     */
    getParams(): Record<string, string>;
    /**
     * Get current query params
     */
    getQuery(): Record<string, string>;
    /**
     * Get full route state snapshot
     */
    getState(): RouteState;
    /**
     * Match a pattern against a path
     */
    matchPath(pattern: string, path: string): RouteMatch | null;
    /**
     * Subscribe to route changes
     */
    onNavigate(callback: RouteChangeCallback): () => void;
    /**
     * Notify all subscribers of route change
     */
    private notifySubscribers;
    /**
     * Check if a path matches the current route
     */
    isActive(pattern: string): boolean;
    /**
     * Get a URL with query params
     */
    buildUrl(path: string, query?: Record<string, string>): string;
    /**
     * Clean up browser event listeners and subscriptions
     */
    dispose(): void;
    /**
     * Support `using` syntax for automatic cleanup
     */
    [Symbol.dispose](): void;
}
