import type { Auth, Session, User } from "lucia-auth";
import type { NextRequest, NextResponse } from "./types.js";
export declare const handleApiRoutes: (auth: Auth) => (req: NextRequest, res: NextResponse) => Promise<any>;
export declare class AuthRequest<A extends Auth> {
    private auth;
    private req;
    private res;
    constructor(auth: A, req: NextRequest, res: NextResponse);
    validate: () => Promise<Readonly<{
        sessionId: string;
        userId: string;
        activePeriodExpires: Date;
        idlePeriodExpires: Date;
        state: "active" | "idle";
        isFresh: boolean;
    }> | null>;
    validateUser: () => Promise<{
        user: User;
        session: Session;
    } | {
        user: null;
        session: null;
    }>;
    setSession: (session: Session | null) => void;
}
