///
import { JsonWebKey, KeyObject } from 'crypto';
declare type Algorithm = 'EdDSA' | 'RS256';
interface JWSProtectedHeader {
alg: Algorithm;
[K: string]: unknown;
}
interface JWSPayload {
[K: string]: unknown;
}
interface JWS {
sign: (protectedHeader: JWSProtectedHeader, payload: JWSPayload, key: KeyObject) => Promise;
verify: (jws: string, key: KeyObject) => Promise;
}
export declare const jws: JWS;
interface JWTPayload {
iss?: string;
sub?: string;
aud?: string | string[];
jti?: string;
nbf?: number;
exp?: number;
iat?: number;
[K: string]: unknown;
}
export interface JWT {
sign: (payload: JWTPayload) => Promise;
}
export declare const makeJWT: ({ jwk }: {
jwk: JsonWebKey;
}) => JWT;
export declare type ExportJWK = (jwk: JsonWebKey) => JsonWebKey;
export declare const exportJWK: ExportJWK;
export {};