/// <reference types="node" />
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 {};
