/** * Token Utilities for Aria SDK * * Provides functions to decode and extract session information from tokens. * Supports both JWT tokens (decodable) and opaque tokens (backend-provided session_id). * * @example * ```typescript * // Check if token is a JWT * const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."; * if (isJWT(token)) { * const sessionId = extractSessionIdFromToken(token); * console.log('Session ID:', sessionId); * } * * // Decode full JWT payload * const decoded = decodeJWT(token); * if (decoded) { * console.log('Payload:', decoded); * } * ``` */ /** * Information extracted from a decoded token */ export interface TokenInfo { /** Session ID if found in token */ sessionId: string | null; /** Full decoded payload */ payload: Record | null; /** Token expiration timestamp (Unix timestamp in seconds) */ exp: number | null; /** Token issued at timestamp (Unix timestamp in seconds) */ iat: number | null; } /** * Check if a token is in JWT format * * @param token - The token to check * @returns True if the token is a valid JWT format (3 parts separated by dots) * * @example * ```typescript * isJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U") * // Returns: true * * isJWT("opaque-token-12345") * // Returns: false * ``` */ export declare function isJWT(token: string): boolean; /** * Decode a JWT token without verification * * **Note:** This function does NOT verify the token signature. * It only decodes the payload for client-side use. * * @param token - The JWT token to decode * @returns The decoded payload or null if decoding fails * * @example * ```typescript * const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uX2lkIjoiMTIzNDU2In0.xxxxx"; * const payload = decodeJWT(token); * // Returns: { session_id: "123456" } * ``` */ export declare function decodeJWT(token: string): Record | null; /** * Extract session ID from a token * * This function attempts to extract a session ID from a JWT token by checking * common claim names used for session identifiers. * * Checked claim names (in order): * - `session_id` * - `sessionId` * - `sid` * - `jti` (JWT ID) * - `sub` (Subject) * * @param token - The token to extract session ID from * @returns The session ID if found, null otherwise * * @example * ```typescript * const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uX2lkIjoiYWJjMTIzIn0.xxxxx"; * const sessionId = extractSessionIdFromToken(token); * // Returns: "abc123" * * const opaqueToken = "opaque-token-12345"; * const result = extractSessionIdFromToken(opaqueToken); * // Returns: null (not a JWT) * ``` */ export declare function extractSessionIdFromToken(token: string): string | null; /** * Get comprehensive token information * * Decodes a JWT token and extracts session ID, expiration, and other metadata. * * @param token - The token to decode * @returns Token information object with session ID, payload, and timestamps * * @example * ```typescript * const tokenInfo = getTokenInfo(myToken); * if (tokenInfo.sessionId) { * console.log('Session ID:', tokenInfo.sessionId); * console.log('Expires at:', new Date(tokenInfo.exp * 1000)); * } * ``` */ export declare function getTokenInfo(token: string): TokenInfo; /** * Check if a JWT token is expired * * @param token - The JWT token to check * @returns True if the token is expired, false otherwise * * @example * ```typescript * if (isTokenExpired(myToken)) { * console.log('Token has expired, need to refresh'); * } * ``` */ export declare function isTokenExpired(token: string): boolean; //# sourceMappingURL=tokenUtils.d.ts.map