import type { IRouterLocation } from './IRouterLocation'; import type { ILocationStrategy } from './Strategies/ILocationStrategy'; /** * Provides an abstraction over `window.location` that automatically adapts * to the currently active routing strategy (hash vs. path-based routing). * * This class delegates all URL access and manipulation to the underlying * `ILocationStrategy`, keeping it free of `if (useHash)` branching. * * @example * const strategy = new HashLocationStrategy(); * const location = new RouterLocation(strategy); * const path = location.pathname; * const query = location.search; * * @public */ export declare class RouterLocation implements IRouterLocation { /** * The location strategy that handles URL reading and manipulation. */ private readonly _strategy; /** * Constructs a new instance of the `RouterLocation` class. * * @param strategy - The location strategy to delegate to. */ constructor(strategy: ILocationStrategy); /** * Gets the current full document location URL. */ get href(): string; /** * Gets the normalized pathname of the application route. */ get pathname(): string; /** * Gets the normalized search string (query parameters) for the current route. */ get search(): string; /** * Gets the app-level route, which combines `pathname` and `search`. */ get route(): string; /** * Gets the application-level fragment/hash. */ get hash(): string; /** * Gets the hostname (e.g. "localhost"). */ get hostname(): string; /** * Gets the full origin (e.g. "http://localhost:8080"). */ get origin(): string; /** * Gets the host (hostname + port). */ get host(): string; /** * Gets the port number (e.g. "8080"). */ get port(): string; /** * Gets the protocol used (e.g. "http:"). */ get protocol(): string; /** * Navigates programmatically to a new route. * * @param path - The route path to navigate to. */ navigate(path: string): void; /** * Returns the value of a query parameter from the current route URL. * * @param name - The parameter name. * @returns The parameter value, or `null` if not present. */ getSearchParam(name: string): string | null; /** * Sets a query parameter on the current route URL without triggering navigation. * * @param name - The parameter name. * @param value - The parameter value. */ setSearchParam(name: string, value: string): void; /** * Removes a query parameter from the current route URL without triggering navigation. * * @param name - The parameter name to remove. */ deleteSearchParam(name: string): void; } /** * Service locator for accessing the current `RouterLocation` instance globally. * Intended for use in scenarios where dependency injection is not available. * * @example * const currentPath = RouterLocationServiceLocator.current.pathname; * * @public */ export declare class RouterLocationServiceLocator { /** * Internal storage for the registered location instance. */ private static _current; /** * Gets the globally registered `RouterLocation` instance. * Throws an error if not set. */ static get current(): RouterLocation; /** * Returns whether a `RouterLocation` instance is registered. */ static isSet(): boolean; /** * Registers the current `RouterLocation` instance. * * @param current - The location instance to register globally. */ static set(current: RouterLocation): void; } //# sourceMappingURL=RouterLocation.d.ts.map