import { Crypto1State } from "./state";
export declare const LF_POLY_ODD: number;
export declare const LF_POLY_EVEN: number;
/**
 * Helper used to obscure the keystream during authentication
 * @param x Input data
 * @param n Keystream number
 * @returns {number}
 */
export declare const prng_successor: (x: number, n: number) => number;
/**
 * Generate keystream for words (uint32)
 * @param s State
 * @param input Input word
 * @param isEncrypted Is input word encrypted?
 * @returns {number}
 */
export declare const crypto1_word: (s: Crypto1State, input: number, isEncrypted?: boolean) => number;
/**
 * Generate keystream for bytes
 * @param s State
 * @param input Input byte
 * @param isEncrypted Is input byte encrypted?
 * @returns {number}
 */
export declare const crypto1_byte: (s: Crypto1State, input: number, isEncrypted?: boolean) => number;
/**
 * Generate keystream for bits
 * @param s State
 * @param input Input bit
 * @param isEncrypted Is input bit encrypted?
 * @returns {number}
 */
export declare const crypto1_bit: (s: Crypto1State, input: number, isEncrypted?: boolean) => number;
/**
 * Proceed encryption/decryption process
 * @param s State
 * @param data Input data
 * @param isIn Use input data as input word for keystream generation?
 * @returns {number[]}
 */
export declare const encrypt: (s: Crypto1State, data: number[], isIn?: boolean) => number[];
