{
	lib,
	pkgsMaster,
	...
}: {
	options.module.dpi.bypass = {
		enable = lib.mkEnableOption "the Zapret DPI bypass service.";
		package = lib.mkPackageOption pkgsMaster "zapret" { };
		params = lib.mkOption {
			default = [ ];
			type = with lib.types; listOf str;
		};
		whitelist = lib.mkOption {
			default = [ ];
			type = with lib.types; listOf str;
		};
		blacklist = lib.mkOption {
			default = [ ];
			type = with lib.types; listOf str;
		};
		qnum = lib.mkOption {
			default = 200;
			type = lib.types.int;
		};
		configureFirewall = lib.mkOption {
			default = true;
			type = lib.types.bool;
		};
		httpSupport = lib.mkOption {
			default = true;
			type = lib.types.bool;
		};
		httpMode = lib.mkOption {
			default = "first";
			type = lib.types.enum [
				"first"
				"full"
			];
		};
		udpSupport = lib.mkOption {
			default = false;
			type = lib.types.bool;
		};
		udpPorts = lib.mkOption {
			default = [ ];
			type = with lib.types; listOf str;
		};
	};
}