import type { Request } from 'express';
import type { JWTPayload } from 'jose';
export declare const signHS256JWT: (secret: string, issuer: string, audience: string, jti: string, sub: string, expiration: number) => Promise<string>;
export declare const signEdDSAJWT: (privateKey: string, issuer: string, audience: string, jti: string, sub: string, expiration: number) => Promise<string>;
export declare const verifyEdDSAJWT: (token: string, publicKey: string, audience: string, issuer: string) => Promise<import("jose").JWTVerifyResult<JWTPayload>>;
export declare const extractJWTFromAuthHeader: (req: Request) => string | undefined;
export declare const validateJWTPayload: (jwtPayload: JWTPayload) => {
    aud: string;
    exp: number;
    iat: number;
    iss: string;
    jti: string;
    nbf: number;
    sub: string;
};
export declare const decodeJWTPayload: (token: string) => {
    aud: string;
    exp: number;
    iat: number;
    iss: string;
    jti: string;
    nbf: number;
    sub: string;
};
