import { Request, Response } from 'express';
import { JWTTokenPayload, SessionPayload } from '../core/interfaces/token-payload.interface';
import { NestAuthUserAccess } from '../user/entities/user-access.entity';
import { FindOneOptions } from 'typeorm';
import { NestAuthUser } from '../user/entities/user.entity';
export declare class RequestContext {
    private static storage;
    readonly id: number;
    request: Request;
    response: Response;
    constructor(request: Request, response: Response);
    static create(request: Request, response: Response, next: () => void): void;
    static current(): RequestContext | undefined;
    static currentRequest(): Request | null;
    static currentTenantId(): string | null;
    static currentUserAccess(findOptions?: FindOneOptions<NestAuthUserAccess>): Promise<NestAuthUserAccess | null>;
    static currentUserId(): string | null;
    static currentUser(findOptions?: FindOneOptions<NestAuthUser>): Promise<NestAuthUser | null>;
    static getJwtTokenPayload(): JWTTokenPayload | null;
    static currentSession(): SessionPayload | null;
    static getDeviceInfo(): {
        deviceName: string;
        ipAddress: string;
        browser: string;
    };
    private static getDeviceName;
    private static getBrowser;
    private static getIpAddress;
}
//# sourceMappingURL=request-context.d.ts.map