```js
// @noErrors
import { defineParams } from '@sveltejs/kit/params';
```
## defineParams
Define [parameter matchers](/docs/kit/advanced-routing#Matching) for your app.
```dts
function defineParams<
T extends Record
>(definitions: T): DefinedParams;
```
## DefinedParams
The return type of [`defineParams`](/docs/kit/@sveltejs-kit-params#defineParams).
```dts
type DefinedParams<
T extends Record
> = {
readonly [K in keyof T]: ParamEntry;
};
```
## MatcherParam
Extracts the param type from a matcher.
```dts
type MatcherParam
> =
M extends StandardSchemaV1
? Inner extends ParamValue
? Inner
: Inner extends StandardSchemaV1
? StandardSchemaV1.InferOutput extends ParamValue
? StandardSchemaV1.InferOutput
: never
: never
: never;
```
## ParamDefinition
A param matcher definition passed to [`defineParams`](/docs/kit/@sveltejs-kit-params#defineParams).
```dts
type ParamDefinition =
| ((param: string) => ParamValue | undefined)
| StandardSchemaV1;
```
## ParamMatcher
The shape of a param matcher. See [matching](/docs/kit/advanced-routing#Matching) for more info.
```dts
type ParamMatcher
## ParamValue
A value that can be parsed from a URL param and losslessly encoded with `String(...)`.
```dts
type ParamValue = string | number | boolean | bigint;
```