/**
 * Next.js Auth0 型定義
 *
 * 🔄 クライアント・サーバー共通
 * - 型定義のみでランタイム依存なし
 * - Next.jsランタイム非依存
 */
import { UserPayload } from './types';
/**
 * Next.js Auth0 設定
 */
export interface NextJsAuth0Config {
    domain: string;
    clientId: string;
    clientSecret: string;
    appBaseUrl: string;
    secret: string;
    scope?: string;
    audience?: string;
    signInReturnToPath?: string;
    logoutStrategy?: 'auto' | 'oidc' | 'v2';
    /** 🆕 組織設定 */
    organization?: {
        /** 組織ID（固定の組織の場合） */
        organizationId?: string;
        /** 組織名（固定の組織の場合） */
        organizationName?: string;
        /** 組織招待URLでの自動参加 */
        autoAcceptInvitations?: boolean;
        /** 組織コンテキストの必須化 */
        requireOrganization?: boolean;
        /** 組織選択ページのURL */
        organizationSelectionUrl?: string;
    };
    session?: {
        absoluteLifetime?: number;
        rollingDuration?: number;
        rolling?: boolean;
        cookie?: {
            domain?: string;
            path?: string;
            secure?: boolean;
            sameSite?: 'strict' | 'lax' | 'none';
            transient?: boolean;
        };
    };
    routes?: {
        login?: string;
        logout?: string;
        callback?: string;
        profile?: string;
        accessToken?: string;
        backchannelLogout?: string;
        /** 🆕 組織関連ルート */
        organizationLogin?: string;
        organizationCallback?: string;
        organizationSelection?: string;
    };
}
/**
 * セッション情報
 */
export interface Session {
    user: UserPayload;
    idToken: string;
    accessToken: string;
    refreshToken?: string;
    expiresAt: number;
    createdAt: number;
    /** 🆕 組織コンテキスト */
    organizationContext?: {
        organizationId: string;
        organizationName?: string;
        roles?: string[];
        permissions?: string[];
    };
}
/**
 * 🆕 組織ログインオプション
 */
export interface OrganizationLoginOptions {
    /** 組織ID */
    organizationId: string;
    /** リダイレクト先 */
    returnTo?: string;
    /** 招待コード（ある場合） */
    invitation?: string;
    /** 組織固有のコネクション */
    connection?: string;
}
//# sourceMappingURL=nextjs-auth0-types.d.ts.map