import { Jwt, ProofOfPossession, ProofOfPossessionCallbacks } from '../types';
/**
 *
 *  - proofOfPossessionCallback: JWTSignerCallback
 *    Mandatory if you want to create (sign) ProofOfPossession
 *  - proofOfPossessionVerifierCallback?: JWTVerifyCallback
 *    If exists, verifies the ProofOfPossession
 *  - proofOfPossessionCallbackArgs: ProofOfPossessionCallbackArgs
 *    arguments needed for signing ProofOfPossession
 * @param callbacks:
 *    - proofOfPossessionCallback: JWTSignerCallback
 *      Mandatory to create (sign) ProofOfPossession
 *    - proofOfPossessionVerifierCallback?: JWTVerifyCallback
 *      If exists, verifies the ProofOfPossession
 * @param kid: the kid refers to a DID URL which identifies a particular key in the DID Document that the Credential shall be bound to
 * @param endpointMetadata
 *  - Mandatory for signing the ProofOfPossession
 * @param jwtArgs
 * @param clientId
 *  - Optional, clientId of the party requesting the credential
 */
export declare const createProofOfPossession: (callbacks: ProofOfPossessionCallbacks, jwtProps?: JwtProps, existingJwt?: Jwt) => Promise<ProofOfPossession>;
export interface JwtProps {
    kid?: string;
    issuer?: string;
    clientId?: string;
    alg?: string;
    jti?: string;
    nonce?: string;
}
