///
///
///
///
///
import React from 'react'
import { ParsedUrlQuery } from 'querystring'
import { IncomingMessage, ServerResponse } from 'http'
import {
NextPageContext,
NextComponentType,
NextApiResponse,
NextApiRequest,
NextApiHandler,
// @ts-ignore This path is generated at build time and conflicts otherwise
} from '../dist/shared/lib/utils'
import {
NextApiRequestCookies,
// @ts-ignore This path is generated at build time and conflicts otherwise
} from '../dist/server/api-utils'
// @ts-ignore This path is generated at build time and conflicts otherwise
import next from '../dist/server/next'
export type ServerRuntime = 'nodejs' | 'experimental-edge' | 'edge' | undefined
// @ts-ignore This path is generated at build time and conflicts otherwise
export { NextConfig } from '../dist/server/config'
export type {
Metadata,
MetadataRoute,
ResolvedMetadata,
ResolvingMetadata, // @ts-ignore This path is generated at build time and conflicts otherwise
} from '../dist/lib/metadata/types/metadata-interface'
/**
* Stub route type for typedRoutes before `next dev` or `next build` is run
* @link https://beta.nextjs.org/docs/configuring/typescript#statically-typed-links
* @example
* ```ts
* import type { Route } from 'next'
* // ...
* router.push(returnToPath as Route)
* ```
*/
export type Route = string & {}
// Extend the React types with missing properties
declare module 'react' {
// support
interface HtmlHTMLAttributes extends React.HTMLAttributes {
amp?: string
}
//
support
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- It's actually required for module augmentation to work.
interface ImgHTMLAttributes {
fetchPriority?: 'high' | 'low' | 'auto' | undefined
}
}
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<
NextPageContext,
InitialProps,
Props
>
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
/**
* @deprecated this config has been removed in favor of the next.config.js option
*/
// TODO: remove in next minor release (current v13.1.1)
unstable_includeFiles?: string[]
/**
* @deprecated this config has been removed in favor of the next.config.js option
*/
// TODO: remove in next minor release (current v13.1.1)
unstable_excludeFiles?: string[]
}
export {
NextPageContext,
NextComponentType,
NextApiResponse,
NextApiRequest,
NextApiHandler,
}
export type PreviewData = string | false | object | undefined
/**
* Context object passed into `getStaticProps`.
* @link https://nextjs.org/docs/api-reference/data-fetching/get-static-props#context-parameter
*/
export type GetStaticPropsContext<
Params extends ParsedUrlQuery = ParsedUrlQuery,
Preview extends PreviewData = PreviewData
> = {
params?: Params
preview?: boolean
previewData?: Preview
draftMode?: boolean
locale?: string
locales?: string[]
defaultLocale?: string
}
/**
* The return type of `getStaticProps`.
* @link https://nextjs.org/docs/api-reference/data-fetching/get-static-props#getstaticprops-return-values
*/
export type GetStaticPropsResult =
| { props: Props; revalidate?: number | boolean }
| { redirect: Redirect; revalidate?: number | boolean }
| { notFound: true; revalidate?: number | boolean }
/**
* Static Site Generation feature for Next.js.
* @link https://nextjs.org/docs/basic-features/data-fetching/get-static-props
* @link https://nextjs.org/docs/basic-features/typescript#static-generation-and-server-side-rendering
* @example
* ```ts
* export const getStaticProps: GetStaticProps = async (context) => {
* // ...
* }
* ```
*/
export type GetStaticProps<
Props extends { [key: string]: any } = { [key: string]: any },
Params extends ParsedUrlQuery = ParsedUrlQuery,
Preview extends PreviewData = PreviewData
> = (
context: GetStaticPropsContext
) => Promise> | GetStaticPropsResult
export type InferGetStaticPropsType any> = Extract<
Awaited>,
{ props: any }
>['props']
export type GetStaticPathsContext = {
locales?: string[]
defaultLocale?: string
}
/**
* The return type of `getStaticPaths`.
* @link https://nextjs.org/docs/api-reference/data-fetching/get-static-paths#getstaticpaths-return-values
*/
export type GetStaticPathsResult<
Params extends ParsedUrlQuery = ParsedUrlQuery
> = {
paths: Array
fallback: boolean | 'blocking'
}
/**
* Define a list of paths to be statically generated if dynamic routes exist.
* @link https://nextjs.org/docs/basic-features/data-fetching/get-static-paths
* @link https://nextjs.org/docs/basic-features/typescript#static-generation-and-server-side-rendering
* @example
* ```ts
* export const getStaticPaths: GetStaticPaths = async () => {
* // ...
* }
* ```
*/
export type GetStaticPaths = (
context: GetStaticPathsContext
) => Promise> | GetStaticPathsResult
/**
* Context object passed into `getServerSideProps`.
* @link https://nextjs.org/docs/api-reference/data-fetching/get-server-side-props#context-parameter
*/
export type GetServerSidePropsContext<
Params extends ParsedUrlQuery = ParsedUrlQuery,
Preview extends PreviewData = PreviewData
> = {
req: IncomingMessage & {
cookies: NextApiRequestCookies
}
res: ServerResponse
params?: Params
query: ParsedUrlQuery
preview?: boolean
previewData?: Preview
draftMode?: boolean
resolvedUrl: string
locale?: string
locales?: string[]
defaultLocale?: string
}
/**
* The return type of `getServerSideProps`.
* @link https://nextjs.org/docs/api-reference/data-fetching/get-server-side-props#getserversideprops-return-values
*/
export type GetServerSidePropsResult =
| { props: Props | Promise }
| { redirect: Redirect }
| { notFound: true }
/**
* Server-side Rendering feature for Next.js.
* @link https://nextjs.org/docs/basic-features/data-fetching/get-server-side-props
* @link https://nextjs.org/docs/basic-features/typescript#static-generation-and-server-side-rendering
* @example
* ```ts
* export const getServerSideProps: GetServerSideProps = async (context) => {
* // ...
* }
*/
export type GetServerSideProps<
Props extends { [key: string]: any } = { [key: string]: any },
Params extends ParsedUrlQuery = ParsedUrlQuery,
Preview 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