import { CryptoKey, KeyObject, JWK, SignOptions, JWSHeaderParameters, GeneralJWS } from '../../types.d.cjs';

interface Signature {
    setProtectedHeader(protectedHeader: JWSHeaderParameters): Signature;
    setUnprotectedHeader(unprotectedHeader: JWSHeaderParameters): Signature;
    addSignature(...args: Parameters<GeneralSign['addSignature']>): Signature;
    sign(...args: Parameters<GeneralSign['sign']>): Promise<GeneralJWS>;
    done(): GeneralSign;
}
declare class GeneralSign {
    #private;
    constructor(payload: Uint8Array);
    addSignature(key: CryptoKey | KeyObject | JWK | Uint8Array, options?: SignOptions): Signature;
    sign(): Promise<GeneralJWS>;
}

export { GeneralSign, type Signature };
