use std::time::Duration;
pub const CHROMEDRIVER_DEFAULT_URL: &str = "http://localhost:9515";
pub const CHROMEDRIVER_DEFAULT_PORT: u16 = 9515;
pub const GECKODRIVER_DEFAULT_PORT: u16 = 4444;
pub const DEFAULT_USER_AGENT: &str = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";
pub const CHROMEDRIVER: &str = "chromedriver";
pub const GECKODRIVER: &str = "geckodriver";
pub const DEFAULT_TIMEOUT_SECS: u64 = 30;
pub const DEFAULT_TIMEOUT: Duration = Duration::from_secs(DEFAULT_TIMEOUT_SECS);
pub const WEBDRIVER_CHECK_TIMEOUT_SECS: u64 = 2;
pub const WEBDRIVER_CHECK_TIMEOUT: Duration = Duration::from_secs(WEBDRIVER_CHECK_TIMEOUT_SECS);
pub const BROWSER_LAUNCH_TIMEOUT_SECS: u64 = 60;
pub const BROWSER_LAUNCH_TIMEOUT: Duration = Duration::from_secs(BROWSER_LAUNCH_TIMEOUT_SECS);
pub const PAGE_LOAD_WAIT_SECS: u64 = 2;
pub const PAGE_LOAD_WAIT: Duration = Duration::from_secs(PAGE_LOAD_WAIT_SECS);
pub const HTTPBIN_HTML_URL: &str = "https://httpbin.org/html";
pub const HTTPBIN_JSON_URL: &str = "https://httpbin.org/json";
pub const HTTPBIN_XML_URL: &str = "https://httpbin.org/xml";
pub const HTTPBIN_404_URL: &str = "https://httpbin.org/status/404";
pub const HTTPBIN_500_URL: &str = "https://httpbin.org/status/500";
pub const HTTPBIN_LARGE_URL: &str = "https://httpbin.org/bytes/10000";
pub const EXAMPLE_URL: &str = "https://example.com";
pub const EXAMPLE_PROXY_URL: &str = "http://example.com:8080";
pub const CHROME_HEADLESS_ARGS: &[&str] = &[
"--headless",
"--disable-gpu",
"--disable-dev-shm-usage",
"--no-sandbox",
];
pub const CHROME_DRIVER_ARGS: &[&str] =
&["--disable-gpu", "--no-sandbox", "--disable-dev-shm-usage"];
pub const FIREFOX_DRIVER_ARGS: &[&str] = &["--log=warn"];
pub const DEFAULT_SEARCH_LIMIT: usize = 5;
pub const DEFAULT_SEARCH_ENGINE: &str = "duckduckgo,bing,brave";
pub const LOG_LEVEL_INFO: &str = "info";
pub const LOG_LEVEL_DEBUG: &str = "debug";
pub const FORMAT_MARKDOWN: &str = "markdown";
pub const FORMAT_JSON: &str = "json";
pub const FORMAT_HTML: &str = "html";
pub const SEARCH_ENGINE_DUCKDUCKGO: &str = "duckduckgo";
pub const SEARCH_ENGINE_BING: &str = "bing";
pub const SEARCH_ENGINE_GOOGLE: &str = "google";
pub const SEARCH_ENGINE_GOOGLE_SERPER: &str = "google_serper";
pub const SEARCH_ENGINE_SERPER_ALIAS: &str = "serper";
pub const SEARCH_ENGINE_BRAVE: &str = "brave";
pub const SEARCH_ENGINE_BAIDU: &str = "baidu";
pub const SEARCH_ENGINE_SOUGOU_WEIXIN: &str = "sogou_weixin";
pub const SEARCH_ENGINE_TAVILY: &str = "tavily";
pub const SEARCH_ENGINE_GOOGLEAI: &str = "googleai";
pub const SEARCH_ENGINE_GOOGLE_AI_ALIAS: &str = "google_ai";
pub const SEARCH_ENGINE_SEARXNG: &str = "searxng";
pub const DEFAULT_FETCHER_BROWSER: bool = true;
pub const DEFAULT_SEARCH_BROWSER: bool = true;
pub const ENV_BRAVE_API_KEY: &str = "BRAVE_API_KEY";
pub const ENV_SERPER_API_KEY: &str = "SERPER_API_KEY";
pub const ENV_TAVILY_API_KEY: &str = "TAVILY_API_KEY";
pub const ENV_GEMINI_API_KEY: &str = "GEMINI_API_KEY";
pub const ENV_SEARX_HOST: &str = "SEARX_HOST";
pub const ENV_TARZI_LOG_LEVEL: &str = "TARZI_LOG_LEVEL";
pub const ENV_TARZI_TIMEOUT: &str = "TARZI_TIMEOUT";
pub const ENV_TARZI_FETCHER_FORMAT: &str = "TARZI_FETCHER_FORMAT";
pub const ENV_TARZI_USER_AGENT: &str = "TARZI_USER_AGENT";
pub const ENV_TARZI_FETCHER_TIMEOUT: &str = "TARZI_FETCHER_TIMEOUT";
pub const ENV_TARZI_PROXY: &str = "TARZI_PROXY";
pub const ENV_TARZI_WEB_DRIVER: &str = "TARZI_WEB_DRIVER";
pub const ENV_TARZI_WEB_DRIVER_URL: &str = "TARZI_WEB_DRIVER_URL";
pub const ENV_TARZI_FETCHER_BROWSER: &str = "TARZI_FETCHER_BROWSER";
pub const ENV_TARZI_SEARCH_ENGINE: &str = "TARZI_SEARCH_ENGINE";
pub const ENV_TARZI_QUERY_PATTERN: &str = "TARZI_QUERY_PATTERN";
pub const ENV_TARZI_SEARCH_LIMIT: &str = "TARZI_SEARCH_LIMIT";
pub const ENV_TARZI_SEARCH_BROWSER: &str = "TARZI_SEARCH_BROWSER";
pub const DUCKDUCKGO_QUERY_PATTERN: &str = "https://duckduckgo.com/?q={query}";
pub const DUCKDUCKGO_PLAIN_QUERY_PATTERN: &str = "https://html.duckduckgo.com/html/?q={query}";
pub const BING_QUERY_PATTERN: &str = "https://www.bing.com/search?q={query}";
pub const GOOGLE_QUERY_PATTERN: &str = "https://www.google.com/search?q={query}";
pub const BRAVE_QUERY_PATTERN: &str = "https://search.brave.com/search?q={query}&source=web";
pub const BAIDU_QUERY_PATTERN: &str = "https://www.baidu.com/s?wd={query}";
pub const SOUGOU_WEIXIN_QUERY_PATTERN: &str =
"https://weixin.sogou.com/weixin?type=2&s_from=input&&ie=utf8&query={query}";
pub const BRAVE_API_QUERY_PATTERN: &str =
"https://api.search.brave.com/res/v1/web/search?q={query}&count={limit}";
pub const SERPER_API_URL: &str = "https://google.serper.dev/search";
pub const TAVILY_API_URL: &str = "https://api.tavily.com/search";
pub const GOOGLEAI_API_URL_PATTERN: &str =
"https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent";
pub const DEFAULT_GOOGLEAI_MODEL: &str = "gemini-2.0-flash";
pub const DEFAULT_QUERY_PATTERN: &str = DUCKDUCKGO_QUERY_PATTERN;