/**
 * セッション管理ユーティリティ
 *
 * 機能:
 * - セッションの暗号化/復号化
 * - セッション有効期限チェック
 * - セッション更新
 * - セキュアなCookie設定
 */
import { NextRequest, NextResponse } from 'next/server';
import { Session, NextJsAuth0Config } from '../nextjs-auth0';
/**
 * セッション管理クラス
 */
export declare class SessionManager {
    private config;
    private secretKey;
    constructor(config: NextJsAuth0Config);
    /**
     * セッションを暗号化してトークンにする
     */
    encryptSession(session: Session): Promise<string>;
    /**
     * 暗号化されたトークンからセッションを復号化する
     */
    decryptSession(encryptedToken: string): Promise<Session | null>;
    /**
     * リクエストからセッションを取得
     */
    getSessionFromRequest(request: NextRequest): Promise<Session | null>;
    /**
     * レスポンスにセッションを設定
     */
    setSessionInResponse(response: NextResponse, session: Session | null): Promise<void>;
    /**
     * セッション更新（ローリングセッション対応）
     */
    updateSession(session: Session): Promise<Session>;
    /**
     * セッションが有効かチェック
     */
    isSessionValid(session: Session | null): boolean;
    /**
     * 🆕 組織コンテキストでのセッション検証
     */
    validateOrganizationContext(session: Session | null, organizationId?: string): boolean;
    /**
     * セッションからアクセストークンを取得（リフレッシュも含む）
     */
    getAccessToken(session: Session): Promise<{
        accessToken: string;
        session: Session;
    } | null>;
    /**
     * アクセストークンをリフレッシュ
     */
    private refreshAccessToken;
    /**
     * JWTトークンから有効期限を抽出
     */
    private extractTokenExpiry;
}
//# sourceMappingURL=session-manager.d.ts.map