;
+ /**
+ * This function declares that the `load` function has a _dependency_ on one or more URLs or custom identifiers, which can subsequently be used with [`invalidate()`](/docs/modules#$app-navigation-invalidate) to cause `load` to rerun.
+ *
+ * Most of the time you won't need this, as `fetch` calls `depends` on your behalf — it's only necessary if you're using a custom API client that bypasses `fetch`.
+ *
+ * URLs can be absolute or relative to the page being loaded, and must be [encoded](https://developer.mozilla.org/en-US/docs/Glossary/percent-encoding).
+ *
+ * Custom identifiers have to be prefixed with one or more lowercase letters followed by a colon to conform to the [URI specification](https://www.rfc-editor.org/rfc/rfc3986.html).
+ *
+ * The following example shows how to use `depends` to register a dependency on a custom identifier, which is `invalidate`d after a button click, making the `load` function rerun.
+ *
+ * ```js
+ * /// file: src/routes/+page.js
+ * let count = 0;
+ * export async function load({ depends }) {
+ * depends('increase:count');
+ *
+ * return { count: count++ };
+ * }
+ * ```
+ *
+ * ```html
+ * /// file: src/routes/+page.svelte
+ *
+ *
+ * {data.count}
+ *
+ * ```
+ */
+ depends(...deps: string[]): void;
+ }
+
+ export interface NavigationEvent<
+ Params extends Partial> = Partial>,
+ RouteId extends string | null = string | null
+ > {
+ /**
+ * The parameters of the current page - e.g. for a route like `/blog/[slug]`, a `{ slug: string }` object
+ */
+ params: Params;
+ /**
+ * Info about the current route
+ */
+ route: {
+ /**
+ * The ID of the current route - e.g. for `src/routes/blog/[slug]`, it would be `/blog/[slug]`
+ */
+ id: RouteId;
+ };
+ /**
+ * The URL of the current page
+ */
+ url: URL;
+ }
+
+ /**
+ * Information about the target of a specific navigation.
+ */
+ export interface NavigationTarget {
+ /**
+ * Parameters of the target page - e.g. for a route like `/blog/[slug]`, a `{ slug: string }` object.
+ * Is `null` if the target is not part of the SvelteKit app (could not be resolved to a route).
+ */
+ params: Record | null;
+ /**
+ * Info about the target route
+ */
+ route: { id: string | null };
+ /**
+ * The URL that is navigated to
+ */
+ url: URL;
+ }
+
+ /**
+ * - `enter`: The app has hydrated
+ * - `form`: The user submitted a `