/** * @license Angular v17.1.3 * (c) 2010-2022 Google LLC. https://angular.io/ * License: MIT */ import * as i0 from '@angular/core'; import { InjectionToken } from '@angular/core'; import { Location as Location_2 } from '@angular/common'; import { LocationChangeListener } from '@angular/common'; import { LocationStrategy } from '@angular/common'; import { PlatformLocation } from '@angular/common'; import { Provider } from '@angular/core'; import { SubscriptionLike } from 'rxjs'; /** * Provider for mock platform location config * * @publicApi */ export declare const MOCK_PLATFORM_LOCATION_CONFIG: InjectionToken; /** * A mock implementation of {@link LocationStrategy} that allows tests to fire simulated * location events. * * @publicApi */ export declare class MockLocationStrategy extends LocationStrategy { internalBaseHref: string; internalPath: string; internalTitle: string; urlChanges: string[]; private stateChanges; constructor(); simulatePopState(url: string): void; path(includeHash?: boolean): string; prepareExternalUrl(internal: string): string; pushState(ctx: any, title: string, path: string, query: string): void; replaceState(ctx: any, title: string, path: string, query: string): void; onPopState(fn: (value: any) => void): void; getBaseHref(): string; back(): void; forward(): void; getState(): unknown; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * Mock implementation of URL state. * * @publicApi */ export declare class MockPlatformLocation implements PlatformLocation { private baseHref; private hashUpdate; private popStateSubject; private urlChangeIndex; private urlChanges; constructor(config?: MockPlatformLocationConfig); get hostname(): string; get protocol(): string; get port(): string; get pathname(): string; get search(): string; get hash(): string; get state(): unknown; getBaseHrefFromDOM(): string; onPopState(fn: LocationChangeListener): VoidFunction; onHashChange(fn: LocationChangeListener): VoidFunction; get href(): string; get url(): string; private parseChanges; replaceState(state: any, title: string, newUrl: string): void; pushState(state: any, title: string, newUrl: string): void; forward(): void; back(): void; historyGo(relativePosition?: number): void; getState(): unknown; /** * Browsers are inconsistent in when they fire events and perform the state updates * The most easiest thing to do in our mock is synchronous and that happens to match * Firefox and Chrome, at least somewhat closely * * https://github.com/WICG/navigation-api#watching-for-navigations * https://docs.google.com/document/d/1Pdve-DJ1JCGilj9Yqf5HxRJyBKSel5owgOvUJqTauwU/edit#heading=h.3ye4v71wsz94 * popstate is always sent before hashchange: * https://developer.mozilla.org/en-US/docs/Web/API/Window/popstate_event#when_popstate_is_sent */ private emitEvents; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * Mock platform location config * * @publicApi */ export declare interface MockPlatformLocationConfig { startUrl?: string; appBaseHref?: string; } /** * Returns mock providers for the `Location` and `LocationStrategy` classes. * The mocks are helpful in tests to fire simulated location events. * * @publicApi */ export declare function provideLocationMocks(): Provider[]; /** * A spy for {@link Location} that allows tests to fire simulated location events. * * @publicApi */ export declare class SpyLocation implements Location_2 { urlChanges: string[]; private _history; private _historyIndex; /** @nodoc */ ngOnDestroy(): void; setInitialPath(url: string): void; setBaseHref(url: string): void; path(): string; getState(): unknown; isCurrentPathEqualTo(path: string, query?: string): boolean; simulateUrlPop(pathname: string): void; simulateHashChange(pathname: string): void; prepareExternalUrl(url: string): string; go(path: string, query?: string, state?: any): void; replaceState(path: string, query?: string, state?: any): void; forward(): void; back(): void; historyGo(relativePosition?: number): void; onUrlChange(fn: (url: string, state: unknown) => void): VoidFunction; subscribe(onNext: (value: any) => void, onThrow?: ((error: any) => void) | null, onReturn?: (() => void) | null): SubscriptionLike; normalize(url: string): string; private pushHistory; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } export { }