/// import { SerializeOptions } from 'cookie'; import { IncomingMessage, ServerResponse } from 'http'; import type { cookies } from 'next/headers'; import type { RequestCookies, ResponseCookies } from 'next/dist/compiled/@edge-runtime/cookies'; interface NextCookiesRequest extends Request { get cookies(): RequestCookies; } interface NextCookiesResponse extends Response { get cookies(): ResponseCookies; } export interface HttpContext extends SerializeOptions { req?: IncomingMessage & { cookies?: TmpCookiesObj; }; res?: ServerResponse; } export type NextContext = { req?: NextCookiesRequest; res?: NextCookiesResponse; cookies?: CookiesFn; }; export type OptionsType = HttpContext | NextContext; export type CookiesFn = typeof cookies; export type NextCookies = NextCookiesResponse['cookies'] | NextCookiesRequest['cookies']; export type TmpCookiesObj = { [key: string]: string; } | Partial<{ [key: string]: string; }>; export type CookieValueTypes = string | undefined; export {};