import type { HttpRequest } from "./HttpRequest";
import { Metadata } from "./Metadata";
export interface CreateCookieOptions {
    maxAge?: number;
    expires?: Date;
    httpOnly?: boolean;
    secure?: boolean;
    sameSite?: "Strict" | "Lax";
    path?: string;
    domain?: string;
    partitioned?: boolean;
}
export declare function createCookie(name: string, value: string, options?: CreateCookieOptions): string;
declare class Store {
    req: HttpRequest;
    cookies: Set<string>;
    headers: Headers;
    prefetchedResources: Map<string, Record<string, any>>;
    prefetchPromiseQueue: Set<() => Promise<any>>;
    user: any;
    csrfHmac: string | null;
    locale: string | null;
    metadata: Metadata;
    constructor(req: HttpRequest);
    setLocale(locale: string): void;
    renderMeta(): {
        title: any;
        description: any;
        openGraph: any;
    };
    setCSRFHmac(hmac: string): void;
    setCookie(name: string, value: string, options?: CreateCookieOptions): void;
    deleteCookie(name: string): void;
    setHeaders(name: string, value: string): void;
    setUser(user: any): void;
    setRequest(req: HttpRequest<any, any>): void;
    destroy(): void;
}
export declare class RequestContext {
    static getStore(): Store;
    static setRequest(req: HttpRequest<any, any>): void;
    static run<T>(httpRequest: HttpRequest, fn: () => T): T;
}
export {};
//# sourceMappingURL=requestContext.d.ts.map