/// /// /// 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' // @ts-ignore This path is generated at build time and conflicts otherwise export { NextConfig } from '../dist/server/config' // Extend the React types with missing properties declare module 'react' { // support interface HtmlHTMLAttributes extends React.HTMLAttributes { amp?: string } // support interface LinkHTMLAttributes extends HTMLAttributes { nonce?: string } } 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 /** * `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?: number | string | boolean /** * 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?: number | string } | 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 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 = T extends GetStaticProps ? P : T extends ( context?: GetStaticPropsContext ) => Promise> | GetStaticPropsResult ? P : never 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 = T extends GetServerSideProps< infer P, any > ? P : T extends ( context?: GetServerSidePropsContext ) => Promise> ? P : never 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