(fn: T): T
}
export type Redirect =
| {
statusCode: 301 | 302 | 303 | 307 | 308
destination: string
basePath?: false
}
| {
permanent: boolean
destination: string
basePath?: false
}
/**
* `Page` type, use it as a guide to create `pages`.
*/
export type NextPage = NextComponentType
export type FileSizeSuffix = `${
| 'k'
| 'K'
| 'm'
| 'M'
| 'g'
| 'G'
| 't'
| 'T'
| 'p'
| 'P'}${'b' | 'B'}`
export type SizeLimit = number | `${number}${FileSizeSuffix}`
export type ResponseLimit = SizeLimit | boolean
/**
* `Config` type, use it for export const config
*/
export type PageConfig = {
amp?: boolean | 'hybrid'
api?: {
/**
* Configures or disables body size limit warning. Can take a number or
* any string format supported by `bytes`, for example `1000`, `'500kb'` or
* `'3mb'`.
*/
responseLimit?: ResponseLimit
/**
* The byte limit of the body. This is the number of bytes or any string
* format supported by `bytes`, for example `1000`, `'500kb'` or `'3mb'`.
*/
bodyParser?:
| {
sizeLimit?: SizeLimit
}
| false
/**
* Flag to disable warning "API page resolved
* without sending a response", due to explicitly
* using an external API resolver, like express
*/
externalResolver?: true
}
env?: Array
runtime?: ServerRuntime
unstable_runtimeJS?: false
unstable_JsPreload?: false
unstable_includeFiles?: string[]
unstable_excludeFiles?: string[]
}
export {
NextPageContext,
NextComponentType,
NextApiResponse,
NextApiRequest,
NextApiHandler,
}
export type PreviewData = string | false | object | undefined
export type GetStaticPropsContext<
Q extends ParsedUrlQuery = ParsedUrlQuery,
D extends PreviewData = PreviewData
> = {
params?: Q
preview?: boolean
previewData?: D
locale?: string
locales?: string[]
defaultLocale?: string
}
export type GetStaticPropsResult =
| { props: P; revalidate?: number | boolean }
| { redirect: Redirect; revalidate?: number | boolean }
| { notFound: true; revalidate?: number | boolean }
export type GetStaticProps<
P extends { [key: string]: any } = { [key: string]: any },
Q extends ParsedUrlQuery = ParsedUrlQuery,
D extends PreviewData = PreviewData
> = (
context: GetStaticPropsContext
) => Promise> | GetStaticPropsResult
export type InferGetStaticPropsType any> = Extract<
Awaited>,
{ props: any }
>['props']
export type GetStaticPathsContext = {
locales?: string[]
defaultLocale?: string
}
export type GetStaticPathsResult = {
paths: Array
fallback: boolean | 'blocking'
}
export type GetStaticPaths = (
context: GetStaticPathsContext
) => Promise> | GetStaticPathsResult
export type GetServerSidePropsContext<
Q extends ParsedUrlQuery = ParsedUrlQuery,
D extends PreviewData = PreviewData
> = {
req: IncomingMessage & {
cookies: NextApiRequestCookies
}
res: ServerResponse
params?: Q
query: ParsedUrlQuery
preview?: boolean
previewData?: D
resolvedUrl: string
locale?: string
locales?: string[]
defaultLocale?: string
}
export type GetServerSidePropsResult
=
| { props: P | Promise
}
| { redirect: Redirect }
| { notFound: true }
export type GetServerSideProps<
P extends { [key: string]: any } = { [key: string]: any },
Q extends ParsedUrlQuery = ParsedUrlQuery,
D extends PreviewData = PreviewData
> = (
context: GetServerSidePropsContext
) => Promise>
export type InferGetServerSidePropsType any> = Awaited<
Extract>, { props: any }>['props']
>
declare global {
interface Crypto {
readonly subtle: SubtleCrypto
getRandomValues<
T extends
| Int8Array
| Int16Array
| Int32Array
| Uint8Array
| Uint16Array
| Uint32Array
| Uint8ClampedArray
| Float32Array
| Float64Array
| DataView
| null
>(
array: T
): T
randomUUID(): string
}
}
export default next