import { ICryptoProvider, IEncryptionScheme } from './abstract.js';
/**
 * Generate AES key and IV from nonces as defined by MTProto.
 * Used in authorization flow.
 *
 * @param crypto  Crypto provider
 * @param serverNonce  Server nonce
 * @param newNonce  New nonce
 * @returns  Tuple: `[key, iv]`
 */
export declare function generateKeyAndIvFromNonce(crypto: ICryptoProvider, serverNonce: Uint8Array, newNonce: Uint8Array): [Uint8Array, Uint8Array];
/**
 * Create AES IGE instance for message (given auth key and message key)
 * as defined by MTProto v2.
 *
 * @param crypto  Crypto provider
 * @param authKey  Authorization key
 * @param messageKey  Message key
 * @param client  Whether this is a client to server message
 */
export declare function createAesIgeForMessage(crypto: ICryptoProvider, authKey: Uint8Array, messageKey: Uint8Array, client: boolean): IEncryptionScheme;
/**
 * Create AES IGE instance for file (given auth key and message key)
 * as defined by MTProto v1.
 *
 * @param crypto  Crypto provider
 * @param authKey  Authorization key
 * @param messageKey  Message key
 * @param client  Whether this is a client to server message
 */
export declare function createAesIgeForMessageOld(crypto: ICryptoProvider, authKey: Uint8Array, messageKey: Uint8Array, client: boolean): IEncryptionScheme;
