export declare type AuthCryptoKeyPair = {
    privateJWKey: JsonWebKey;
    publicJWKey: JsonWebKey;
};
export declare type AuthSignatureData = {
    timestamp: number;
};
/**
 * Returns true if crypto API is available
 */
export declare const cryptoExists: () => boolean;
/**
 * Generate a key pair -- a secret key for client and a server key for InteropService
 *
 * @returns {Promise<AuthCryptoKeyPair>} the key pair in JSON Web Key format
 */
export declare function authGenerateKeys(): Promise<{
    err: string | undefined;
    keys: AuthCryptoKeyPair;
}>;
/**
 * Return a signature for data provided using provided key.
 *
 * @param jwKey JKT key, which was provided by generateKey in AuthCryptoKeyPair.appClientSecretKey
 * @param dataToEncrypt
 * @returns
 */
export declare function authSignature(jwKey: JsonWebKey, dataToSign: AuthSignatureData): Promise<{
    err: string | undefined;
    signature: string;
}>;
/**
 * Return verify result of signed data.
 *
 * @param serverKey JKT key, which was provided by generateKey in AuthCryptoKeyPair.appServerKey
 * @param dataToEncrypt
 * @returns
 */
export declare function authVerify(publicKey: JsonWebKey, signatureString: string, signedData: AuthSignatureData): Promise<{
    err: string | undefined;
    verificationResult: boolean;
}>;
/**
 * Return verify result of signed JSON Web Token.
 *
 * @param serverKey JKT key, which was provided by generateKey in AuthCryptoKeyPair.appServerKey
 * @param dataToEncrypt
 * @returns
 */
export declare function authVerifyJWT(publicKey: JsonWebKey, jwtString: string): Promise<{
    err: string | undefined;
    verificationResult: boolean;
}>;
export declare function createKeys(): Promise<void>;
export declare function authExamples(): Promise<void>;
export declare function authRawExamples(): Promise<void>;
//# sourceMappingURL=AuthSignVerify.d.ts.map