listVideoInputDevices() {
			return __awaiter(this, void 0, void 0, function* () {
				if (!this.hasNavigator) {
					throw new Error('Can\'t enumerate devices, navigator is not present.');
				}
				if (!this.canEnumerateDevices) {
					throw new Error('Can\'t enumerate devices, method not supported.');
				}
				const devices = yield navigator.mediaDevices.enumerateDevices();
				const videoDevices = [];
				for (const device of devices) {
					const kind = device.kind === 'video' ? 'videoinput' : device.kind;
					if (kind !== 'videoinput') {
						continue;
					}
					const deviceId = device.deviceId || device.id;
					const label = device.label || `Video device ${videoDevices.length + 1}`;
					const groupId = device.groupId;
					const videoDevice = { deviceId, label, kind, groupId };
					videoDevices.push(videoDevice);
				}
				return videoDevices;
			});
		}
Lists all the available video input devices.