# Types (/themes/sdk/reference/routing/types)

```ts
import { … } from '@poltura/theme-sdk/routing';
```

## `LinkProps` [#linkprops]

Props of [`Link`](/themes/sdk/reference/routing/parts#link).

```ts
type LinkProps = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'children'> & {
    href: string | LinkValue;
    children?: ReactNode;
    className?: string;
    replace?: boolean;
    prefetch?: boolean;
    ref?: Ref<HTMLAnchorElement>;
}
```

## `Router` [#router]

Navigation actions for code that moves the visitor without a link.

<TypeTable type={{"push":{"description":"Goes to `href`, adding a history entry.","type":"(href: string) => void","required":true},"replace":{"description":"Goes to `href`, replacing the current history entry.","type":"(href: string) => void","required":true},"back":{"description":"Goes back one history entry.","type":"() => void","required":true},"refresh":{"description":"Loads the current page's data again.","type":"() => void","required":true},"prefetch":{"description":"Loads `href` ahead of a likely visit.","type":"(href: string) => void","required":true}}} />

## `PageParams` [#pageparams]

The params a theme page's route captured, such as `slug`; a catch-all's rest is under `$`.

```ts
type PageParams = Readonly<Record<string, string>>
```

## `SitePageRef` [#sitepageref]

A link to one of the merchant's site pages.

<TypeTable type={{"title":{"description":"The page title, in the page language.","type":"string","required":true},"path":{"description":"The page's path.","type":"string","required":true}}} />

## `SitePage` [#sitepage]

One of the merchant's site pages, with its place among the others.

<TypeTable type={{"title":{"description":"The page title, in the page language.","type":"string","required":true},"contentHtml":{"description":"The page body as sanitised HTML.","type":"string","required":true},"path":{"description":"The page's path.","type":"string","required":true},"parent":{"description":"The page this one sits under, or null at the top level.","type":"SitePageRef | null","required":true},"children":{"description":"The pages under this one, in the merchant's order.","type":"readonly SitePageRef[]","required":true}}} />

## `NotFoundPageTexts` [#notfoundpagetexts]

The store's wording on its not-found page, in the page language.

<TypeTable type={{"title":{"description":"The page heading.","type":"string","required":true},"description":{"description":"The line under the heading.","type":"string","required":true},"backToHome":{"description":"The label of the link back to the home page.","type":"string","required":true},"browseProducts":{"description":"The label of the link to every product.","type":"string","required":true},"categoriesTitle":{"description":"The heading over the suggested categories.","type":"string","required":true},"categoriesDescription":{"description":"The line under that heading.","type":"string","required":true}}} />

## `NotFoundPage` [#notfoundpage]

What the store's not-found page shows: its wording and the categories it suggests instead.

<TypeTable type={{"texts":{"description":"The page's wording.","type":"NotFoundPageTexts","required":true},"categories":{"description":"The top-level categories, in the merchant's order.","type":"readonly CategoryRef[]","required":true}}} />
