import { ProduceJWT, JWTPayload, JWTHeaderParameters, CryptoKey, KeyObject, JWK, SignOptions } from '../types.d.cjs';

declare class SignJWT implements ProduceJWT {
    #private;
    constructor(payload?: JWTPayload);
    setIssuer(issuer: string): this;
    setSubject(subject: string): this;
    setAudience(audience: string | string[]): this;
    setJti(jwtId: string): this;
    setNotBefore(input: number | string | Date): this;
    setExpirationTime(input: number | string | Date): this;
    setIssuedAt(input?: number | string | Date): this;
    setProtectedHeader(protectedHeader: JWTHeaderParameters): this;
    sign(key: CryptoKey | KeyObject | JWK | Uint8Array, options?: SignOptions): Promise<string>;
}

export { SignJWT };
