import { ProduceJWT, JWTPayload, JWTClaimVerificationOptions, JWSHeaderParameters } from '../types.d.cjs';

interface UnsecuredResult<PayloadType = JWTPayload> {
    payload: PayloadType & JWTPayload;
    header: JWSHeaderParameters;
}
declare class UnsecuredJWT implements ProduceJWT {
    #private;
    constructor(payload?: JWTPayload);
    encode(): string;
    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;
    static decode<PayloadType = JWTPayload>(jwt: string, options?: JWTClaimVerificationOptions): UnsecuredResult<PayloadType>;
}

export { UnsecuredJWT, type UnsecuredResult };
