import abc
from _typeshed import Incomplete
from abc import ABC
from dataclasses import dataclass as dataclass
from urllib.parse import unquote as unquote, urlparse as urlparse
PLATFORM: Incomplete
class ScoringStats:
def __init__(self) -> None: ...
def update(self, score: float) -> None: ...
def get_average(self) -> float: ...
def get_min(self) -> float: ...
def get_max(self) -> float: ...
class URLScorer(ABC, metaclass=abc.ABCMeta):
def __init__(self, weight: float = 1.0) -> None: ...
def score(self, url: str) -> float: ...
@property
def stats(self): ...
@property
def weight(self): ...
class CompositeScorer(URLScorer):
def __init__(self, scorers: list[URLScorer], normalize: bool = True) -> None: ...
def score(self, url: str) -> float: ...
class KeywordRelevanceScorer(URLScorer):
def __init__(self, keywords: list[str], weight: float = 1.0, case_sensitive: bool = False) -> None: ...
class PathDepthScorer(URLScorer):
def __init__(self, optimal_depth: int = 3, weight: float = 1.0) -> None: ...
class ContentTypeScorer(URLScorer):
def __init__(self, type_weights: dict[str, float], weight: float = 1.0) -> None: ...
class FreshnessScorer(URLScorer):
def __init__(self, weight: float = 1.0, current_year: int = 2024) -> None: ...
class DomainAuthorityScorer(URLScorer):
def __init__(self, domain_weights: dict[str, float], default_weight: float = 0.5, weight: float = 1.0) -> None: ...