import type { StringValue } from 'ms'; import { z } from 'zod'; export declare const jwtPayloadSchema: z.ZodObject<{ sub: z.ZodString; username: z.ZodString; roles: z.ZodArray; sessionId: z.ZodString; type: z.ZodEnum<["access", "refresh"]>; iat: z.ZodOptional; exp: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "access" | "refresh"; username: string; roles: string[]; sessionId: string; sub: string; iat?: number | undefined; exp?: number | undefined; }, { type: "access" | "refresh"; username: string; roles: string[]; sessionId: string; sub: string; iat?: number | undefined; exp?: number | undefined; }>; export type JWTPayload = z.infer; export interface TokenPair { accessToken: string; refreshToken: string; expiresIn: number; } export declare const generateToken: (payload: Omit, expiresIn?: StringValue | number) => string; export declare const generateTokenPair: (userId: string, username: string, roles: string[], sessionId: string) => TokenPair; export declare const verifyToken: (token: string, expectedType?: "access" | "refresh") => Promise; export declare const extractTokenFromHeader: (authHeader?: string) => string | null; export declare const decodeToken: (token: string) => JWTPayload | null; export declare const isTokenExpiringSoon: (token: string, thresholdSeconds?: number) => boolean; export declare const generateTokens: (userId: string, username: string, roles: string[], sessionId: string) => TokenPair; export declare const verifyRefreshToken: (token: string) => Promise; export declare const verifyAccessToken: (token: string) => Promise; //# sourceMappingURL=jwt.d.ts.map