export type ParsedUrlQuery = Record; export type SizeLimit = | number | `${number}` | `${number}${"b" | "B" | "kb" | "KB" | "mb" | "MB" | "gb" | "GB"}`; export interface PageConfig { api?: { bodyParser?: | { sizeLimit?: SizeLimit; } | false; }; runtime?: "nodejs" | "edge" | "experimental-edge"; } export interface NextaneRequest { readonly method?: string; readonly url: string; readonly headers: Headers & Record; readonly cookies: Record; readonly raw: Request; } export interface NextaneServerResponse { statusCode: number; statusMessage?: string; readonly headersSent: boolean; readonly finished: boolean; setHeader(name: string, value: string | string[]): NextaneServerResponse; getHeader(name: string): string | null; getHeaders(): Record; hasHeader(name: string): boolean; removeHeader(name: string): void; writeHead( statusCode: number, statusMessageOrHeaders?: string | Record, headers?: Record, ): NextaneServerResponse; write(data: string | Uint8Array): boolean; end(data?: string | Uint8Array): void; setPreviewData?( data: unknown, options?: { maxAge?: number; path?: string }, ): NextaneServerResponse; clearPreviewData?(options?: { path?: string }): NextaneServerResponse; setDraftMode?(options?: { enable?: boolean }): NextaneServerResponse; } export interface Redirect { destination: string; permanent?: boolean; statusCode?: 301 | 302 | 303 | 307 | 308; } export interface GetServerSidePropsContext { req: NextaneRequest; res: NextaneServerResponse; params?: ParsedUrlQuery; query: ParsedUrlQuery; resolvedUrl: string; preview?: boolean; previewData?: unknown; draftMode?: boolean; locale?: string; locales?: string[]; defaultLocale?: string; } export type GetServerSidePropsResult> = | { props: Props | Promise; notFound?: false } | { redirect: Redirect } | { notFound: true }; export type GetServerSideProps = Record> = ( context: GetServerSidePropsContext, ) => GetServerSidePropsResult | Promise>; export interface GetStaticPropsContext { params?: ParsedUrlQuery; preview?: boolean; previewData?: unknown; draftMode?: boolean; revalidateReason?: "build" | "stale" | "on-demand"; locale?: string; locales?: string[]; defaultLocale?: string; } export interface GetStaticPathsContext { locales?: string[]; defaultLocale?: string; } export type GetStaticPathsResult = { paths: Array< | string | { params: ParsedUrlQuery; locale?: string; } >; fallback: boolean | "blocking"; }; export type GetStaticPaths = ( context: GetStaticPathsContext, ) => GetStaticPathsResult | Promise; export type GetStaticPropsResult> = | { props: Props | Promise; revalidate?: number | boolean; notFound?: false; } | { redirect: Redirect; revalidate?: number | boolean } | { notFound: true; revalidate?: number | boolean }; export type GetStaticProps = Record> = ( context: GetStaticPropsContext, ) => GetStaticPropsResult | Promise>; export interface NextaneData { props: { pageProps: Record; [key: string]: unknown; }; page: string; query: ParsedUrlQuery; buildId: string; isFallback: boolean; resolvedPath?: string; gsp?: boolean; gssp?: boolean; customServer?: boolean; err?: { name: string; message: string; stack?: string }; trailingSlash?: boolean; locale?: string; locales?: string[]; defaultLocale?: string; } export interface NextaneRouter { route: string; pathname: string; query: ParsedUrlQuery; asPath: string; basePath: string; locale?: string; locales?: string[]; defaultLocale?: string; isReady: boolean; isPreview: boolean; isFallback: boolean; push(url: UrlObject | string, as?: UrlObject | string, options?: TransitionOptions): Promise; replace(url: UrlObject | string, as?: UrlObject | string, options?: TransitionOptions): Promise; prefetch(url: UrlObject | string): Promise; back(): void; reload(): void; } export interface UrlObject { pathname?: string; query?: Record | undefined>; hash?: string; } export interface TransitionOptions { shallow?: boolean; scroll?: boolean; locale?: string | false; } export interface NextApiRequest { readonly method?: string; readonly url?: string; readonly headers: Headers; query: ParsedUrlQuery; readonly cookies: Record; readonly body: unknown; readonly raw: Request; readonly nextUrl: URL; readonly preview?: boolean; readonly previewData?: unknown; readonly draftMode?: boolean; } export interface NextApiResponse { statusCode: number; statusMessage?: string; readonly headersSent: boolean; readonly writableEnded: boolean; status(code: number): NextApiResponse; json(data: Data): void; send(data: Data | string | Uint8Array): void; setHeader(name: string, value: string | string[]): NextApiResponse; getHeader(name: string): string | null; getHeaders(): Record; hasHeader(name: string): boolean; removeHeader(name: string): void; writeHead( statusCode: number, statusMessageOrHeaders?: string | Record, headers?: Record, ): NextApiResponse; write(data: string | Uint8Array): boolean; redirect(statusOrUrl: number | string, url?: string): void; setPreviewData( data: unknown, options?: { maxAge?: number; path?: string }, ): NextApiResponse; clearPreviewData(options?: { path?: string }): NextApiResponse; setDraftMode(options?: { enable?: boolean }): NextApiResponse; revalidate( pathname: string, options?: { unstable_onlyGenerated?: boolean }, ): Promise; end(data?: string | Uint8Array): void; }