sendFriendMessage(steamId, message, options, callback) {
		if (typeof options === 'function') {
			callback = options;
			options = {};
		} else if (!options) {
			options = {};
		}

		if (!options.chatEntryType) {
			options.chatEntryType = EChatEntryType.ChatMsg;
		}

		if (options.chatEntryType && typeof options.containsBbCode === 'undefined') {
			options.containsBbCode = true;
		}

		if (options.containsBbCode) {
			message = message.replace(/\[/g, '\\[');
		}

		return StdLib.Promises.timeoutCallbackPromise(10000, null, callback, true, (resolve, reject) => {
			this.user._sendUnified('FriendMessages.SendMessage#1', {
				steamid: Helpers.steamID(steamId).toString(),
				chat_entry_type: options.chatEntryType,
				message,
				contains_bbcode: options.containsBbCode
			}, (body, hdr) => {
				let err = Helpers.eresultError(hdr.proto);
				if (err) {
					return reject(err);
				}

				body = preProcessObject(body);
				body.ordinal = body.ordinal || 0;
				body.modified_message = body.modified_message || message;
				body.message_bbcode_parsed = parseBbCode(body.modified_message);
				resolve(body);
			});
		});
	}
Send a direct chat message to a friend.
@param {SteamID|string} steamId
@param {string} message
@param {{[chatEntryType], [containsBbCode]}} [options]
@param {function} [callback]
@returns {Promise<{modified_message: string, server_timestamp: Date, ordinal: number}>}