from typing import Any
from typing import Callable
from typing import Literal
from typing import Optional
from typing import Sequence
from typing import Tuple
from typing import Type
from typing import TypeVar

from gi.repository import Gio
from gi.repository import GLib
from gi.repository import GObject

IMAGE_LARGE_HEIGHT: int = 423
IMAGE_LARGE_WIDTH: int = 752
IMAGE_NORMAL_HEIGHT: int = 351
IMAGE_NORMAL_WIDTH: int = 624
IMAGE_THUMBNAIL_HEIGHT: int = 63
IMAGE_THUMBNAIL_WIDTH: int = 112
MAJOR_VERSION: int = 0
MICRO_VERSION: int = 1
MINOR_VERSION: int = 16
_lock = ...  # FIXME Constant
_namespace: str = "AppStream"
_version: str = "1.0"

def agreement_kind_from_string(value: str) -> AgreementKind: ...
def agreement_kind_to_string(value: AgreementKind) -> str: ...
def artifact_kind_from_string(kind: str) -> ArtifactKind: ...
def artifact_kind_to_string(kind: ArtifactKind) -> str: ...
def bundle_kind_from_string(bundle_str: str) -> BundleKind: ...
def bundle_kind_to_string(kind: BundleKind) -> str: ...
def checksum_kind_from_string(kind_str: str) -> ChecksumKind: ...
def checksum_kind_to_string(kind: ChecksumKind) -> str: ...
def color_kind_from_string(str: str) -> ColorKind: ...
def color_kind_to_string(kind: ColorKind) -> str: ...
def color_scheme_kind_from_string(str: str) -> ColorSchemeKind: ...
def color_scheme_kind_to_string(kind: ColorSchemeKind) -> str: ...
def component_kind_from_string(kind_str: str) -> ComponentKind: ...
def component_kind_to_string(kind: ComponentKind) -> str: ...
def component_scope_from_string(scope_str: str) -> ComponentScope: ...
def component_scope_to_string(scope: ComponentScope) -> str: ...
def content_rating_system_format_age(
    system: ContentRatingSystem, age: int
) -> Optional[str]: ...
def content_rating_system_from_locale(locale: str) -> ContentRatingSystem: ...
def content_rating_system_get_csm_ages(system: ContentRatingSystem) -> list[int]: ...
def content_rating_system_get_formatted_ages(
    system: ContentRatingSystem,
) -> list[str]: ...
def content_rating_system_to_string(system: ContentRatingSystem) -> Optional[str]: ...
def content_rating_value_from_string(value: str) -> ContentRatingValue: ...
def content_rating_value_to_string(value: ContentRatingValue) -> str: ...
def control_kind_from_string(kind_str: str) -> ControlKind: ...
def control_kind_to_string(kind: ControlKind) -> str: ...
def display_length_kind_from_string(kind_str: str) -> DisplayLengthKind: ...
def display_length_kind_to_string(kind: DisplayLengthKind) -> str: ...
def display_side_kind_from_string(kind_str: str) -> DisplaySideKind: ...
def display_side_kind_to_string(kind: DisplaySideKind) -> str: ...
def format_kind_from_string(kind_str: str) -> FormatKind: ...
def format_kind_to_string(kind: FormatKind) -> str: ...
def format_version_from_string(version_str: str) -> FormatVersion: ...
def format_version_to_string(version: FormatVersion) -> str: ...
def get_appstream_version() -> str: ...
def get_current_distro_component_id() -> str: ...
def get_default_categories(with_special: bool) -> list[Category]: ...
def get_license_url(license: str) -> str: ...
def gstring_replace(string: GLib.String, find: str, replace: str) -> int: ...
def gstring_replace2(
    string: GLib.String, find: str, replace: str, limit: int
) -> int: ...
def icon_kind_from_string(kind_str: str) -> IconKind: ...
def icon_kind_to_string(kind: IconKind) -> str: ...
def image_kind_from_string(kind: str) -> ImageKind: ...
def image_kind_to_string(kind: ImageKind) -> str: ...
def internet_kind_from_string(kind_str: str) -> InternetKind: ...
def internet_kind_to_string(kind: InternetKind) -> str: ...
def is_spdx_license_exception_id(exception_id: str) -> bool: ...
def is_spdx_license_expression(license: str) -> bool: ...
def is_spdx_license_id(license_id: str) -> bool: ...
def issue_kind_from_string(kind_str: str) -> IssueKind: ...
def issue_kind_to_string(kind: IssueKind) -> str: ...
def issue_severity_from_string(str: str) -> IssueSeverity: ...
def issue_severity_to_string(severity: IssueSeverity) -> str: ...
def launchable_kind_from_string(kind_str: str) -> LaunchableKind: ...
def launchable_kind_to_string(kind: LaunchableKind) -> str: ...
def license_is_free_license(license: str) -> bool: ...
def license_is_metadata_license(license: str) -> bool: ...
def license_is_metadata_license_id(license_id: str) -> bool: ...
def license_to_spdx_id(license: str) -> str: ...
def markup_convert_simple(markup: str) -> str: ...
def markup_strsplit_words(text: str, line_len: int) -> list[str]: ...
def merge_kind_from_string(kind_str: str) -> MergeKind: ...
def merge_kind_to_string(kind: MergeKind) -> str: ...
def metadata_error_quark() -> int: ...
def pool_error_quark() -> int: ...
def provided_kind_from_string(kind_str: str) -> ProvidedKind: ...
def provided_kind_to_l10n_string(kind: ProvidedKind) -> str: ...
def provided_kind_to_string(kind: ProvidedKind) -> str: ...
def relation_compare_from_string(compare_str: str) -> RelationCompare: ...
def relation_compare_to_string(compare: RelationCompare) -> str: ...
def relation_compare_to_symbols_string(compare: RelationCompare) -> str: ...
def relation_error_quark() -> int: ...
def relation_item_kind_from_string(kind_str: str) -> RelationItemKind: ...
def relation_item_kind_to_string(kind: RelationItemKind) -> str: ...
def relation_kind_from_string(kind_str: str) -> RelationKind: ...
def relation_kind_to_string(kind: RelationKind) -> str: ...
def release_kind_from_string(kind_str: str) -> ReleaseKind: ...
def release_kind_to_string(kind: ReleaseKind) -> str: ...
def release_url_kind_from_string(kind_str: str) -> ReleaseUrlKind: ...
def release_url_kind_to_string(kind: ReleaseUrlKind) -> str: ...
def releases_kind_from_string(kind_str: str) -> ReleasesKind: ...
def releases_kind_to_string(kind: ReleasesKind) -> str: ...
def screenshot_kind_from_string(kind: str) -> ScreenshotKind: ...
def screenshot_kind_to_string(kind: ScreenshotKind) -> str: ...
def size_kind_from_string(size_kind: str) -> SizeKind: ...
def size_kind_to_string(size_kind: SizeKind) -> str: ...
def spdx_license_detokenize(license_tokens: str) -> Optional[str]: ...
def spdx_license_tokenize(license: str) -> Optional[list[str]]: ...
def suggested_kind_from_string(kind_str: str) -> SuggestedKind: ...
def suggested_kind_to_string(kind: SuggestedKind) -> str: ...
def system_info_error_quark() -> int: ...
def translation_kind_from_string(kind_str: str) -> TranslationKind: ...
def translation_kind_to_string(kind: TranslationKind) -> str: ...
def urgency_kind_from_string(urgency_kind: str) -> UrgencyKind: ...
def urgency_kind_to_string(urgency_kind: UrgencyKind) -> str: ...
def url_kind_from_string(url_kind: str) -> UrlKind: ...
def url_kind_to_string(url_kind: UrlKind) -> str: ...
def utils_build_data_id(
    scope: ComponentScope, bundle_kind: BundleKind, origin: str, cid: str, branch: str
) -> str: ...
def utils_compare_versions(a: str, b: str) -> int: ...
def utils_data_id_equal(data_id1: str, data_id2: str) -> bool: ...
def utils_data_id_get_cid(data_id: str) -> str: ...
def utils_data_id_hash(data_id: str) -> int: ...
def utils_data_id_match(
    data_id1: str, data_id2: str, match_flags: DataIdMatchFlags
) -> bool: ...
def utils_data_id_valid(data_id: str) -> bool: ...
def utils_error_quark() -> int: ...
def utils_guess_scope_from_path(path: str) -> ComponentScope: ...
def utils_install_metadata_file(
    location: MetadataLocation, filename: str, origin: str, destdir: str
) -> bool: ...
def utils_is_category_name(category_name: str) -> bool: ...
def utils_is_desktop_environment(desktop: str) -> bool: ...
def utils_is_platform_triplet(triplet: str) -> bool: ...
def utils_is_tld(tld: str) -> bool: ...
def utils_locale_is_compatible(locale1: str, locale2: str) -> bool: ...
def utils_sort_components_into_categories(
    cpts: Sequence[Component], categories: Sequence[Category], check_duplicates: bool
) -> None: ...
def validator_error_quark() -> int: ...
def vercmp(a: str, b: str, flags: VercmpFlags) -> int: ...
def vercmp_simple(a: str, b: str) -> int: ...
def vercmp_test_match(
    ver1: str, compare: RelationCompare, ver2: str, flags: VercmpFlags
) -> bool: ...
def version_string() -> str: ...
def video_codec_kind_from_string(str: str) -> VideoCodecKind: ...
def video_codec_kind_to_string(kind: VideoCodecKind) -> str: ...
def video_container_kind_from_string(str: str) -> VideoContainerKind: ...
def video_container_kind_to_string(kind: VideoContainerKind) -> str: ...

class Agreement(GObject.Object):
    """
    :Constructors:

    ::

        Agreement(**properties)
        new() -> AppStream.Agreement

    Object AsAgreement

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def add_section(self, agreement_section: AgreementSection) -> None: ...
    def get_kind(self) -> AgreementKind: ...
    def get_section_default(self) -> Optional[AgreementSection]: ...
    def get_sections(self) -> list[AgreementSection]: ...
    def get_version_id(self) -> str: ...
    @classmethod
    def new(cls) -> Agreement: ...
    def set_kind(self, kind: AgreementKind) -> None: ...
    def set_version_id(self, version_id: str) -> None: ...

class AgreementClass(GObject.GPointer):
    """
    :Constructors:

    ::

        AgreementClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...
    _as_reserved7: None = ...
    _as_reserved8: None = ...

class AgreementSection(GObject.Object):
    """
    :Constructors:

    ::

        AgreementSection(**properties)
        new() -> AppStream.AgreementSection

    Object AsAgreementSection

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_active_locale(self) -> str: ...
    def get_description(self) -> str: ...
    def get_kind(self) -> str: ...
    def get_name(self) -> str: ...
    @classmethod
    def new(cls) -> AgreementSection: ...
    def set_active_locale(self, locale: str) -> None: ...
    def set_description(self, desc: str, locale: Optional[str] = None) -> None: ...
    def set_kind(self, kind: str) -> None: ...
    def set_name(self, name: str, locale: Optional[str] = None) -> None: ...

class AgreementSectionClass(GObject.GPointer):
    """
    :Constructors:

    ::

        AgreementSectionClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...
    _as_reserved7: None = ...
    _as_reserved8: None = ...

class Artifact(GObject.Object):
    """
    :Constructors:

    ::

        Artifact(**properties)
        new() -> AppStream.Artifact

    Object AsArtifact

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def add_checksum(self, cs: Checksum) -> None: ...
    def add_location(self, location: str) -> None: ...
    def get_bundle_kind(self) -> BundleKind: ...
    def get_checksum(self, kind: ChecksumKind) -> Optional[Checksum]: ...
    def get_checksums(self) -> list[Checksum]: ...
    def get_filename(self) -> str: ...
    def get_kind(self) -> ArtifactKind: ...
    def get_locations(self) -> list[str]: ...
    def get_platform(self) -> str: ...
    def get_size(self, kind: SizeKind) -> int: ...
    @classmethod
    def new(cls) -> Artifact: ...
    def set_bundle_kind(self, kind: BundleKind) -> None: ...
    def set_filename(self, filename: str) -> None: ...
    def set_kind(self, kind: ArtifactKind) -> None: ...
    def set_platform(self, platform: str) -> None: ...
    def set_size(self, size: int, kind: SizeKind) -> None: ...

class ArtifactClass(GObject.GPointer):
    """
    :Constructors:

    ::

        ArtifactClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Branding(GObject.Object):
    """
    :Constructors:

    ::

        Branding(**properties)
        new() -> AppStream.Branding

    Object AsBranding

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_color(
        self, kind: ColorKind, scheme_kind: ColorSchemeKind
    ) -> Optional[str]: ...
    @classmethod
    def new(cls) -> Branding: ...
    def remove_color(
        self, kind: ColorKind, scheme_preference: ColorSchemeKind
    ) -> None: ...
    def set_color(
        self, kind: ColorKind, scheme_preference: ColorSchemeKind, colorcode: str
    ) -> None: ...

class BrandingClass(GObject.GPointer):
    """
    :Constructors:

    ::

        BrandingClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class BrandingColorIter(GObject.GPointer):
    """
    :Constructors:

    ::

        BrandingColorIter()
    """

    dummy1: None = ...
    dummy2: int = ...
    dummy3: None = ...
    dummy4: None = ...
    dummy5: None = ...
    dummy6: None = ...
    def init(self, branding: Branding) -> None: ...
    def next(self) -> Tuple[bool, ColorKind, ColorSchemeKind, str]: ...

class Bundle(GObject.Object):
    """
    :Constructors:

    ::

        Bundle(**properties)
        new() -> AppStream.Bundle

    Object AsBundle

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_id(self) -> str: ...
    def get_kind(self) -> BundleKind: ...
    @classmethod
    def new(cls) -> Bundle: ...
    def set_id(self, id: str) -> None: ...
    def set_kind(self, kind: BundleKind) -> None: ...

class BundleClass(GObject.GPointer):
    """
    :Constructors:

    ::

        BundleClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Category(GObject.Object):
    """
    :Constructors:

    ::

        Category(**properties)
        new() -> AppStream.Category

    Object AsCategory

    Properties from AsCategory:
      id -> gchararray: id
        id
      name -> gchararray: name
        name
      summary -> gchararray: summary
        summary
      icon -> gchararray: icon
        icon
      children -> gpointer: children
        children

    Signals from GObject:
      notify (GParam)
    """

    class Props:
        children: None
        icon: str
        id: str
        name: str
        summary: str

    props: Props = ...
    parent_instance: GObject.Object = ...
    def __init__(self, icon: str = ..., id: str = ..., name: str = ...): ...
    def add_child(self, subcat: Category) -> None: ...
    def add_component(self, cpt: Component) -> None: ...
    def add_desktop_group(self, group_name: str) -> None: ...
    def get_children(self) -> list[Category]: ...
    def get_components(self) -> list[Component]: ...
    def get_desktop_groups(self) -> list[str]: ...
    def get_icon(self) -> str: ...
    def get_id(self) -> str: ...
    def get_name(self) -> str: ...
    def get_summary(self) -> str: ...
    def has_children(self) -> bool: ...
    def has_component(self, cpt: Component) -> bool: ...
    @classmethod
    def new(cls) -> Category: ...
    def remove_child(self, subcat: Category) -> None: ...
    def set_icon(self, value: str) -> None: ...
    def set_id(self, id: str) -> None: ...
    def set_name(self, value: str) -> None: ...
    def set_summary(self, value: str) -> None: ...

class CategoryClass(GObject.GPointer):
    """
    :Constructors:

    ::

        CategoryClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...

class Checksum(GObject.Object):
    """
    :Constructors:

    ::

        Checksum(**properties)
        new() -> AppStream.Checksum
        new_for_kind_value(kind:AppStream.ChecksumKind, value:str) -> AppStream.Checksum

    Object AsChecksum

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_kind(self) -> ChecksumKind: ...
    def get_value(self) -> str: ...
    @classmethod
    def new(cls) -> Checksum: ...
    @classmethod
    def new_for_kind_value(cls, kind: ChecksumKind, value: str) -> Checksum: ...
    def set_kind(self, kind: ChecksumKind) -> None: ...
    def set_value(self, value: str) -> None: ...

class ChecksumClass(GObject.GPointer):
    """
    :Constructors:

    ::

        ChecksumClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Component(GObject.Object):
    """
    :Constructors:

    ::

        Component(**properties)
        new() -> AppStream.Component

    Object AsComponent

    Properties from AsComponent:
      kind -> AsComponentKind: kind
        kind
      pkgnames -> GStrv: pkgnames
        pkgnames
      id -> gchararray: id
        id
      name -> gchararray: name
        name
      summary -> gchararray: summary
        summary
      description -> gchararray: description
        description
      keywords -> GStrv: keywords
        keywords
      icons -> gpointer: icons
        icons
      urls -> GHashTable: urls
        urls
      categories -> GPtrArray: categories
        categories
      project-license -> gchararray: project-license
        project-license
      project-group -> gchararray: project-group
        project-group
      developer-name -> gchararray: developer-name
        developer-name
      screenshots -> GPtrArray: screenshots
        screenshots

    Signals from GObject:
      notify (GParam)
    """

    class Props:
        categories: list[None]
        description: str
        developer_name: str
        icons: list[Icon]
        id: str
        keywords: list[str]
        kind: ComponentKind
        name: str
        pkgnames: list[str]
        project_group: str
        project_license: str
        screenshots: list[Screenshot]
        summary: str
        urls: dict[UrlKind, str]

    props: Props = ...
    parent_instance: GObject.Object = ...
    def __init__(
        self,
        description: str = ...,
        developer_name: str = ...,
        id: str = ...,
        keywords: Sequence[str] = ...,
        kind: ComponentKind = ...,
        name: str = ...,
        pkgnames: Sequence[str] = ...,
        project_group: str = ...,
        project_license: str = ...,
        summary: str = ...,
    ): ...
    def add_addon(self, addon: Component) -> None: ...
    def add_agreement(self, agreement: Agreement) -> None: ...
    def add_bundle(self, bundle: Bundle) -> None: ...
    def add_category(self, category: str) -> None: ...
    def add_content_rating(self, content_rating: ContentRating) -> None: ...
    def add_extends(self, cpt_id: str) -> None: ...
    def add_icon(self, icon: Icon) -> None: ...
    def add_language(self, locale: Optional[str], percentage: int) -> None: ...
    def add_launchable(self, launchable: Launchable) -> None: ...
    def add_provided(self, prov: Provided) -> None: ...
    def add_provided_item(self, kind: ProvidedKind, item: str) -> None: ...
    def add_relation(self, relation: Relation) -> None: ...
    def add_release(self, release: Release) -> None: ...
    def add_replaces(self, cid: str) -> None: ...
    def add_review(self, review: Review) -> None: ...
    def add_screenshot(self, sshot: Screenshot) -> None: ...
    def add_suggested(self, suggested: Suggested) -> None: ...
    def add_tag(self, ns: str, tag: str) -> bool: ...
    def add_translation(self, tr: Translation) -> None: ...
    def add_url(self, url_kind: UrlKind, url: str) -> None: ...
    def clear_languages(self) -> None: ...
    def clear_tags(self) -> None: ...
    def get_active_locale(self) -> str: ...
    def get_addons(self) -> list[Component]: ...
    def get_agreement_by_kind(self, kind: AgreementKind) -> Optional[Agreement]: ...
    def get_agreements(self) -> list[Agreement]: ...
    def get_branch(self) -> str: ...
    def get_branding(self) -> Optional[Branding]: ...
    def get_bundle(self, bundle_kind: BundleKind) -> Optional[Bundle]: ...
    def get_bundles(self) -> list[Bundle]: ...
    def get_categories(self) -> list[str]: ...
    def get_compulsory_for_desktops(self) -> list[str]: ...
    def get_content_rating(self, kind: str) -> Optional[ContentRating]: ...
    def get_content_ratings(self) -> list[ContentRating]: ...
    def get_context(self) -> Optional[Context]: ...
    def get_custom(self) -> dict[None, None]: ...
    def get_custom_value(self, key: str) -> str: ...
    def get_data_id(self) -> str: ...
    def get_date_eol(self) -> str: ...
    def get_description(self) -> str: ...
    def get_desktop_id(self) -> str: ...
    def get_developer_name(self) -> str: ...
    def get_extends(self) -> Optional[list[str]]: ...
    def get_icon_by_size(self, width: int, height: int) -> Optional[Icon]: ...
    def get_icon_stock(self) -> Optional[Icon]: ...
    def get_icons(self) -> list[Icon]: ...
    def get_id(self) -> str: ...
    def get_keywords(self) -> list[str]: ...
    def get_keywords_table(self) -> dict[None, None]: ...
    def get_kind(self) -> ComponentKind: ...
    def get_language(self, locale: Optional[str] = None) -> int: ...
    def get_languages(self) -> list[str]: ...
    def get_launchable(self, kind: LaunchableKind) -> Optional[Launchable]: ...
    def get_launchables(self) -> list[Launchable]: ...
    def get_merge_kind(self) -> MergeKind: ...
    def get_metadata_license(self) -> str: ...
    def get_name(self) -> str: ...
    def get_name_table(self) -> dict[None, None]: ...
    def get_name_variant_suffix(self) -> str: ...
    def get_origin(self) -> str: ...
    def get_pkgname(self) -> str: ...
    def get_pkgnames(self) -> list[str]: ...
    def get_priority(self) -> int: ...
    def get_project_group(self) -> str: ...
    def get_project_license(self) -> str: ...
    def get_provided(self) -> list[Provided]: ...
    def get_provided_for_kind(self, kind: ProvidedKind) -> Optional[Provided]: ...
    def get_recommends(self) -> list[Relation]: ...
    def get_releases(self) -> list[Release]: ...
    def get_releases_kind(self) -> ReleasesKind: ...
    def get_releases_url(self) -> str: ...
    def get_replaces(self) -> list[str]: ...
    def get_requires(self) -> list[Relation]: ...
    def get_reviews(self) -> list[Review]: ...
    def get_scope(self) -> ComponentScope: ...
    def get_screenshots(self) -> list[Screenshot]: ...
    def get_search_tokens(self) -> list[str]: ...
    def get_sort_score(self) -> int: ...
    def get_source_pkgname(self) -> str: ...
    def get_suggested(self) -> list[Suggested]: ...
    def get_summary(self) -> str: ...
    def get_summary_table(self) -> dict[None, None]: ...
    def get_supports(self) -> list[Relation]: ...
    def get_timestamp_eol(self) -> int: ...
    def get_translations(self) -> list[Translation]: ...
    def get_url(self, url_kind: UrlKind) -> Optional[str]: ...
    def get_value_flags(self) -> ValueFlags: ...
    def has_bundle(self) -> bool: ...
    def has_category(self, category: str) -> bool: ...
    def has_tag(self, ns: str, tag: str) -> bool: ...
    def insert_custom_value(self, key: str, value: str) -> bool: ...
    def is_compulsory_for_desktop(self, desktop: str) -> bool: ...
    def is_free(self) -> bool: ...
    def is_ignored(self) -> bool: ...
    def is_member_of_category(self, category: Category) -> bool: ...
    def is_valid(self) -> bool: ...
    def load_from_bytes(
        self, context: Context, format: FormatKind, bytes: GLib.Bytes
    ) -> bool: ...
    def load_from_xml_data(self, context: Context, data: str) -> bool: ...
    def load_releases(self, reload: bool, allow_net: bool) -> bool: ...
    def load_releases_from_bytes(self, bytes: GLib.Bytes) -> bool: ...
    @classmethod
    def new(cls) -> Component: ...
    def remove_tag(self, ns: str, tag: str) -> bool: ...
    def search_matches(self, term: str) -> int: ...
    def search_matches_all(self, terms: str) -> int: ...
    def set_active_locale(self, locale: Optional[str] = None) -> None: ...
    def set_branch(self, branch: str) -> None: ...
    def set_branding(self, branding: Branding) -> None: ...
    def set_compulsory_for_desktop(self, desktop: str) -> None: ...
    def set_data_id(self, value: str) -> None: ...
    def set_date_eol(self, date: str) -> None: ...
    def set_description(self, value: str, locale: Optional[str] = None) -> None: ...
    def set_developer_name(self, value: str, locale: Optional[str] = None) -> None: ...
    def set_id(self, value: str) -> None: ...
    def set_keywords(
        self, value: Sequence[str], locale: Optional[str] = None
    ) -> None: ...
    def set_kind(self, value: ComponentKind) -> None: ...
    def set_merge_kind(self, kind: MergeKind) -> None: ...
    def set_metadata_license(self, value: str) -> None: ...
    def set_name(self, value: str, locale: Optional[str] = None) -> None: ...
    def set_name_variant_suffix(
        self, value: str, locale: Optional[str] = None
    ) -> None: ...
    def set_origin(self, origin: str) -> None: ...
    def set_pkgname(self, pkgname: str) -> None: ...
    def set_pkgnames(self, packages: Sequence[str]) -> None: ...
    def set_priority(self, priority: int) -> None: ...
    def set_project_group(self, value: str) -> None: ...
    def set_project_license(self, value: str) -> None: ...
    def set_releases_kind(self, kind: ReleasesKind) -> None: ...
    def set_releases_url(self, url: str) -> None: ...
    def set_scope(self, scope: ComponentScope) -> None: ...
    def set_sort_score(self, score: int) -> None: ...
    def set_source_pkgname(self, spkgname: str) -> None: ...
    def set_summary(self, value: str, locale: Optional[str] = None) -> None: ...
    def set_value_flags(self, flags: ValueFlags) -> None: ...
    def to_string(self) -> str: ...
    def to_xml_data(self, context: Context) -> str: ...

class ComponentClass(GObject.GPointer):
    """
    :Constructors:

    ::

        ComponentClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class ContentRating(GObject.Object):
    """
    :Constructors:

    ::

        ContentRating(**properties)
        new() -> AppStream.ContentRating

    Object AsContentRating

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def add_attribute(self, id: str, value: ContentRatingValue) -> None: ...
    @staticmethod
    def attribute_from_csm_age(id: str, age: int) -> ContentRatingValue: ...
    @staticmethod
    def attribute_get_description(id: str, value: ContentRatingValue) -> str: ...
    @staticmethod
    def attribute_to_csm_age(id: str, value: ContentRatingValue) -> int: ...
    @staticmethod
    def get_all_rating_ids() -> list[str]: ...
    def get_kind(self) -> str: ...
    def get_minimum_age(self) -> int: ...
    def get_rating_ids(self) -> list[str]: ...
    def get_value(self, id: str) -> ContentRatingValue: ...
    @classmethod
    def new(cls) -> ContentRating: ...
    def set_kind(self, kind: str) -> None: ...
    def set_value(self, id: str, value: ContentRatingValue) -> None: ...

class ContentRatingClass(GObject.GPointer):
    """
    :Constructors:

    ::

        ContentRatingClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Context(GObject.Object):
    """
    :Constructors:

    ::

        Context(**properties)
        new() -> AppStream.Context

    Object AsContext

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_filename(self) -> str: ...
    def get_format_version(self) -> FormatVersion: ...
    def get_locale(self) -> str: ...
    def get_locale_all_enabled(self) -> bool: ...
    def get_media_baseurl(self) -> str: ...
    def get_origin(self) -> str: ...
    def get_priority(self) -> int: ...
    def get_style(self) -> FormatStyle: ...
    def has_media_baseurl(self) -> bool: ...
    @classmethod
    def new(cls) -> Context: ...
    def set_filename(self, fname: str) -> None: ...
    def set_format_version(self, ver: FormatVersion) -> None: ...
    def set_locale(self, value: str) -> None: ...
    def set_media_baseurl(self, value: str) -> None: ...
    def set_origin(self, value: str) -> None: ...
    def set_priority(self, priority: int) -> None: ...
    def set_style(self, style: FormatStyle) -> None: ...

class ContextClass(GObject.GPointer):
    """
    :Constructors:

    ::

        ContextClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class DistroDetails(GObject.Object):
    """
    :Constructors:

    ::

        DistroDetails(**properties)
        new() -> AppStream.DistroDetails

    Object AsDistroDetails

    Properties from AsDistroDetails:
      id -> gchararray: id
        id
      name -> gchararray: name
        name
      version -> gchararray: version
        version
      homepage -> gchararray: homepage
        homepage

    Signals from GObject:
      notify (GParam)
    """

    class Props:
        homepage: str
        id: str
        name: str
        version: str

    props: Props = ...
    parent_instance: GObject.Object = ...
    def get_bool(self, key: str, default_val: bool) -> bool: ...
    def get_cid(self) -> str: ...
    def get_homepage(self) -> str: ...
    def get_id(self) -> str: ...
    def get_name(self) -> str: ...
    def get_str(self, key: str) -> str: ...
    def get_version(self) -> str: ...
    @classmethod
    def new(cls) -> DistroDetails: ...

class DistroDetailsClass(GObject.GPointer):
    """
    :Constructors:

    ::

        DistroDetailsClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Icon(GObject.Object):
    """
    :Constructors:

    ::

        Icon(**properties)
        new() -> AppStream.Icon

    Object AsIcon

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_filename(self) -> str: ...
    def get_height(self) -> int: ...
    def get_kind(self) -> IconKind: ...
    def get_name(self) -> str: ...
    def get_scale(self) -> int: ...
    def get_url(self) -> str: ...
    def get_width(self) -> int: ...
    @classmethod
    def new(cls) -> Icon: ...
    def set_filename(self, filename: str) -> None: ...
    def set_height(self, height: int) -> None: ...
    def set_kind(self, kind: IconKind) -> None: ...
    def set_name(self, name: str) -> None: ...
    def set_scale(self, scale: int) -> None: ...
    def set_url(self, url: str) -> None: ...
    def set_width(self, width: int) -> None: ...

class IconClass(GObject.GPointer):
    """
    :Constructors:

    ::

        IconClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Image(GObject.Object):
    """
    :Constructors:

    ::

        Image(**properties)
        new() -> AppStream.Image

    Object AsImage

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_height(self) -> int: ...
    def get_kind(self) -> ImageKind: ...
    def get_locale(self) -> str: ...
    def get_url(self) -> str: ...
    def get_width(self) -> int: ...
    @classmethod
    def new(cls) -> Image: ...
    def set_height(self, height: int) -> None: ...
    def set_kind(self, kind: ImageKind) -> None: ...
    def set_locale(self, locale: str) -> None: ...
    def set_url(self, url: str) -> None: ...
    def set_width(self, width: int) -> None: ...

class ImageClass(GObject.GPointer):
    """
    :Constructors:

    ::

        ImageClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Issue(GObject.Object):
    """
    :Constructors:

    ::

        Issue(**properties)
        new() -> AppStream.Issue

    Object AsIssue

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_id(self) -> str: ...
    def get_kind(self) -> IssueKind: ...
    def get_url(self) -> str: ...
    @classmethod
    def new(cls) -> Issue: ...
    def set_id(self, id: str) -> None: ...
    def set_kind(self, kind: IssueKind) -> None: ...
    def set_url(self, url: str) -> None: ...

class IssueClass(GObject.GPointer):
    """
    :Constructors:

    ::

        IssueClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Launchable(GObject.Object):
    """
    :Constructors:

    ::

        Launchable(**properties)
        new() -> AppStream.Launchable

    Object AsLaunchable

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def add_entry(self, entry: str) -> None: ...
    def get_entries(self) -> list[str]: ...
    def get_kind(self) -> LaunchableKind: ...
    @classmethod
    def new(cls) -> Launchable: ...
    def set_kind(self, kind: LaunchableKind) -> None: ...

class LaunchableClass(GObject.GPointer):
    """
    :Constructors:

    ::

        LaunchableClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Metadata(GObject.Object):
    """
    :Constructors:

    ::

        Metadata(**properties)
        new() -> AppStream.Metadata

    Object AsMetadata

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def add_component(self, cpt: Component) -> None: ...
    def clear_components(self) -> None: ...
    def component_to_metainfo(self, format: FormatKind) -> str: ...
    def components_to_catalog(self, format: FormatKind) -> str: ...
    def components_to_collection(self, format: FormatKind) -> str: ...
    @staticmethod
    def file_guess_style(filename: str) -> FormatStyle: ...
    def get_architecture(self) -> str: ...
    def get_component(self) -> Optional[Component]: ...
    def get_components(self) -> list[Component]: ...
    def get_format_style(self) -> FormatStyle: ...
    def get_format_version(self) -> FormatVersion: ...
    def get_locale(self) -> str: ...
    def get_media_baseurl(self) -> str: ...
    def get_origin(self) -> str: ...
    def get_parse_flags(self) -> ParseFlags: ...
    def get_update_existing(self) -> bool: ...
    def get_write_header(self) -> bool: ...
    @classmethod
    def new(cls) -> Metadata: ...
    def parse(self, data: str, format: FormatKind) -> bool: ...
    def parse_bytes(self, bytes: GLib.Bytes, format: FormatKind) -> bool: ...
    def parse_desktop_data(self, data: str, cid: str) -> bool: ...
    def parse_file(self, file: Gio.File, format: FormatKind) -> bool: ...
    def parse_releases_bytes(self, bytes: GLib.Bytes) -> Optional[list[Release]]: ...
    def parse_releases_file(self, file: Gio.File) -> Optional[list[Release]]: ...
    def releases_to_data(self, releases: Sequence[Release]) -> str: ...
    def save_catalog(self, fname: str, format: FormatKind) -> bool: ...
    def save_collection(self, fname: str, format: FormatKind) -> bool: ...
    def save_metainfo(self, fname: str, format: FormatKind) -> bool: ...
    def set_architecture(self, arch: str) -> None: ...
    def set_format_style(self, mode: FormatStyle) -> None: ...
    def set_format_version(self, version: FormatVersion) -> None: ...
    def set_locale(self, locale: str) -> None: ...
    def set_media_baseurl(self, url: str) -> None: ...
    def set_origin(self, origin: str) -> None: ...
    def set_parse_flags(self, flags: ParseFlags) -> None: ...
    def set_update_existing(self, update: bool) -> None: ...
    def set_write_header(self, wheader: bool) -> None: ...

class MetadataClass(GObject.GPointer):
    """
    :Constructors:

    ::

        MetadataClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Pool(GObject.Object):
    """
    :Constructors:

    ::

        Pool(**properties)
        new() -> AppStream.Pool

    Object AsPool

    Signals from AsPool:
      changed ()

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def add_component(self, cpt: Component) -> bool: ...
    def add_components(self, cpts: Sequence[Component]) -> bool: ...
    def add_extra_data_location(
        self, directory: str, format_style: FormatStyle
    ) -> None: ...
    def add_flags(self, flags: PoolFlags) -> None: ...
    def add_metadata_location(self, directory: str) -> None: ...
    def build_search_tokens(self, search: str) -> list[str]: ...
    def clear(self) -> None: ...
    def clear2(self) -> bool: ...
    def clear_metadata_locations(self) -> None: ...
    def do_changed(self) -> None: ...
    def get_cache_flags(self) -> CacheFlags: ...
    def get_cache_location(self) -> str: ...
    def get_components(self) -> list[Component]: ...
    def get_components_by_bundle_id(
        self, kind: BundleKind, bundle_id: str, match_prefix: bool
    ) -> list[Component]: ...
    def get_components_by_categories(
        self, categories: Sequence[str]
    ) -> list[Component]: ...
    def get_components_by_extends(self, extended_id: str) -> list[Component]: ...
    def get_components_by_id(self, cid: str) -> list[Component]: ...
    def get_components_by_kind(self, kind: ComponentKind) -> list[Component]: ...
    def get_components_by_launchable(
        self, kind: LaunchableKind, id: str
    ) -> list[Component]: ...
    def get_components_by_provided_item(
        self, kind: ProvidedKind, item: str
    ) -> list[Component]: ...
    def get_flags(self) -> PoolFlags: ...
    def get_locale(self) -> str: ...
    def load(self, cancellable: Optional[Gio.Cancellable] = None) -> bool: ...
    def load_async(
        self,
        cancellable: Optional[Gio.Cancellable] = None,
        callback: Optional[Callable[..., None]] = None,
        *user_data: Any,
    ) -> None: ...
    def load_cache_file(self, fname: str) -> bool: ...
    def load_finish(self, result: Gio.AsyncResult) -> bool: ...
    @classmethod
    def new(cls) -> Pool: ...
    def refresh_cache(self, force: bool) -> bool: ...
    def remove_flags(self, flags: PoolFlags) -> None: ...
    def reset_extra_data_locations(self) -> None: ...
    def save_cache_file(self, fname: str) -> bool: ...
    def search(self, search: str) -> list[Component]: ...
    def set_cache_flags(self, flags: CacheFlags) -> None: ...
    def set_cache_location(self, fname: str) -> None: ...
    def set_flags(self, flags: PoolFlags) -> None: ...
    def set_load_std_data_locations(self, enabled: bool) -> None: ...
    def set_locale(self, locale: str) -> None: ...

class PoolClass(GObject.GPointer):
    """
    :Constructors:

    ::

        PoolClass()
    """

    parent_class: GObject.ObjectClass = ...
    changed: Callable[[Pool], None] = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...

class Provided(GObject.Object):
    """
    :Constructors:

    ::

        Provided(**properties)
        new() -> AppStream.Provided

    Object AsProvided

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def add_item(self, item: str) -> None: ...
    def get_items(self) -> list[str]: ...
    def get_kind(self) -> ProvidedKind: ...
    def has_item(self, item: str) -> bool: ...
    @classmethod
    def new(cls) -> Provided: ...
    def set_kind(self, kind: ProvidedKind) -> None: ...

class ProvidedClass(GObject.GPointer):
    """
    :Constructors:

    ::

        ProvidedClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Relation(GObject.Object):
    """
    :Constructors:

    ::

        Relation(**properties)
        new() -> AppStream.Relation

    Object AsRelation

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_compare(self) -> RelationCompare: ...
    def get_display_side_kind(self) -> DisplaySideKind: ...
    def get_item_kind(self) -> RelationItemKind: ...
    def get_kind(self) -> RelationKind: ...
    def get_value(self) -> str: ...
    def get_value_control_kind(self) -> ControlKind: ...
    def get_value_display_length_kind(self) -> DisplayLengthKind: ...
    def get_value_int(self) -> int: ...
    def get_value_internet_bandwidth(self) -> int: ...
    def get_value_internet_kind(self) -> InternetKind: ...
    def get_value_px(self) -> int: ...
    def get_value_str(self) -> str: ...
    def get_version(self) -> str: ...
    def is_satisfied(
        self, system_info: Optional[SystemInfo] = None, pool: Optional[Pool] = None
    ) -> Tuple[CheckResult, str]: ...
    @classmethod
    def new(cls) -> Relation: ...
    def set_compare(self, compare: RelationCompare) -> None: ...
    def set_display_side_kind(self, kind: DisplaySideKind) -> None: ...
    def set_item_kind(self, kind: RelationItemKind) -> None: ...
    def set_kind(self, kind: RelationKind) -> None: ...
    def set_value(self, value: str) -> None: ...
    def set_value_control_kind(self, kind: ControlKind) -> None: ...
    def set_value_display_length_kind(self, kind: DisplayLengthKind) -> None: ...
    def set_value_int(self, value: int) -> None: ...
    def set_value_internet_bandwidth(self, bandwidth_mbitps: int) -> None: ...
    def set_value_internet_kind(self, kind: InternetKind) -> None: ...
    def set_value_px(self, logical_px: int) -> None: ...
    def set_value_str(self, value: str) -> None: ...
    def set_version(self, version: str) -> None: ...
    def version_compare(self, version: str) -> bool: ...

class RelationClass(GObject.GPointer):
    """
    :Constructors:

    ::

        RelationClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Release(GObject.Object):
    """
    :Constructors:

    ::

        Release(**properties)
        new() -> AppStream.Release

    Object AsRelease

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def add_artifact(self, artifact: Artifact) -> None: ...
    def add_checksum(self, cs: Checksum) -> None: ...
    def add_issue(self, issue: Issue) -> None: ...
    def add_location(self, location: str) -> None: ...
    def get_active_locale(self) -> str: ...
    def get_artifacts(self) -> list[Artifact]: ...
    def get_checksum(self, kind: ChecksumKind) -> Optional[Checksum]: ...
    def get_checksums(self) -> list[Checksum]: ...
    def get_date(self) -> Optional[str]: ...
    def get_date_eol(self) -> Optional[str]: ...
    def get_description(self) -> Optional[str]: ...
    def get_issues(self) -> list[Issue]: ...
    def get_kind(self) -> ReleaseKind: ...
    def get_locations(self) -> list[str]: ...
    def get_size(self, kind: SizeKind) -> int: ...
    def get_timestamp(self) -> int: ...
    def get_timestamp_eol(self) -> int: ...
    def get_urgency(self) -> UrgencyKind: ...
    def get_url(self, url_kind: ReleaseUrlKind) -> Optional[str]: ...
    def get_version(self) -> Optional[str]: ...
    @classmethod
    def new(cls) -> Release: ...
    def set_active_locale(self, locale: str) -> None: ...
    def set_date(self, date: str) -> None: ...
    def set_date_eol(self, date: str) -> None: ...
    def set_description(
        self, description: str, locale: Optional[str] = None
    ) -> None: ...
    def set_kind(self, kind: ReleaseKind) -> None: ...
    def set_size(self, size: int, kind: SizeKind) -> None: ...
    def set_timestamp(self, timestamp: int) -> None: ...
    def set_timestamp_eol(self, timestamp: int) -> None: ...
    def set_urgency(self, urgency: UrgencyKind) -> None: ...
    def set_url(self, url_kind: ReleaseUrlKind, url: str) -> None: ...
    def set_version(self, version: str) -> None: ...
    def vercmp(self, rel2: Release) -> int: ...

class ReleaseClass(GObject.GPointer):
    """
    :Constructors:

    ::

        ReleaseClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Review(GObject.Object):
    """
    :Constructors:

    ::

        Review(**properties)
        new() -> AppStream.Review

    Object AsReview

    Properties from AsReview:
      id -> gchararray: id
      summary -> gchararray: summary
      description -> gchararray: description
      locale -> gchararray: locale
      priority -> gint: priority
      rating -> gint: rating
      version -> gchararray: version
      reviewer-id -> gchararray: reviewer-id
      reviewer-name -> gchararray: reviewer-name
      date -> AsReview: date
      flags -> guint64: flags

    Signals from GObject:
      notify (GParam)
    """

    class Props:
        date: Review
        description: str
        flags: int
        id: str
        locale: str
        priority: int
        rating: int
        reviewer_id: str
        reviewer_name: str
        summary: str
        version: str

    props: Props = ...
    parent_instance: GObject.Object = ...
    def __init__(
        self,
        date: Review = ...,
        description: str = ...,
        flags: int = ...,
        id: str = ...,
        locale: str = ...,
        priority: int = ...,
        rating: int = ...,
        reviewer_id: str = ...,
        reviewer_name: str = ...,
        summary: str = ...,
        version: str = ...,
    ): ...
    def add_flags(self, flags: ReviewFlags) -> None: ...
    def add_metadata(self, key: str, value: str) -> None: ...
    def equal(self, review2: Review) -> bool: ...
    def get_date(self) -> GLib.DateTime: ...
    def get_description(self) -> str: ...
    def get_flags(self) -> ReviewFlags: ...
    def get_id(self) -> str: ...
    def get_locale(self) -> str: ...
    def get_metadata_item(self, key: str) -> str: ...
    def get_priority(self) -> int: ...
    def get_rating(self) -> int: ...
    def get_reviewer_id(self) -> str: ...
    def get_reviewer_name(self) -> str: ...
    def get_summary(self) -> str: ...
    def get_version(self) -> str: ...
    @classmethod
    def new(cls) -> Review: ...
    def set_date(self, date: GLib.DateTime) -> None: ...
    def set_description(self, description: str) -> None: ...
    def set_flags(self, flags: ReviewFlags) -> None: ...
    def set_id(self, id: str) -> None: ...
    def set_locale(self, locale: str) -> None: ...
    def set_priority(self, priority: int) -> None: ...
    def set_rating(self, rating: int) -> None: ...
    def set_reviewer_id(self, reviewer_id: str) -> None: ...
    def set_reviewer_name(self, reviewer_name: str) -> None: ...
    def set_summary(self, summary: str) -> None: ...
    def set_version(self, version: str) -> None: ...

class ReviewClass(GObject.GPointer):
    """
    :Constructors:

    ::

        ReviewClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...
    _as_reserved7: None = ...
    _as_reserved8: None = ...

class Screenshot(GObject.Object):
    """
    :Constructors:

    ::

        Screenshot(**properties)
        new() -> AppStream.Screenshot

    Object AsScreenshot

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def add_image(self, image: Image) -> None: ...
    def add_video(self, video: Video) -> None: ...
    def clear_images(self) -> None: ...
    def get_active_locale(self) -> str: ...
    def get_caption(self) -> str: ...
    def get_image(self, width: int, height: int) -> Image: ...
    def get_images(self) -> list[Image]: ...
    def get_images_all(self) -> list[Image]: ...
    def get_kind(self) -> ScreenshotKind: ...
    def get_media_kind(self) -> ScreenshotMediaKind: ...
    def get_videos(self) -> list[Video]: ...
    def get_videos_all(self) -> list[Video]: ...
    def is_valid(self) -> bool: ...
    @classmethod
    def new(cls) -> Screenshot: ...
    def set_active_locale(self, locale: str) -> None: ...
    def set_caption(self, caption: str, locale: str) -> None: ...
    def set_kind(self, kind: ScreenshotKind) -> None: ...

class ScreenshotClass(GObject.GPointer):
    """
    :Constructors:

    ::

        ScreenshotClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Suggested(GObject.Object):
    """
    :Constructors:

    ::

        Suggested(**properties)
        new() -> AppStream.Suggested

    Object AsSuggested

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def add_id(self, cid: str) -> None: ...
    def get_ids(self) -> list[str]: ...
    def get_kind(self) -> SuggestedKind: ...
    def is_valid(self) -> bool: ...
    @classmethod
    def new(cls) -> Suggested: ...
    def set_kind(self, kind: SuggestedKind) -> None: ...

class SuggestedClass(GObject.GPointer):
    """
    :Constructors:

    ::

        SuggestedClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class SystemInfo(GObject.Object):
    """
    :Constructors:

    ::

        SystemInfo(**properties)
        new() -> AppStream.SystemInfo

    Object AsSystemInfo

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_device_name_for_modalias(
        self, modalias: str, allow_fallback: bool
    ) -> str: ...
    def get_display_length(self, side: DisplaySideKind) -> int: ...
    def get_kernel_name(self) -> str: ...
    def get_kernel_version(self) -> str: ...
    def get_memory_total(self) -> int: ...
    def get_modaliases(self) -> list[str]: ...
    def get_os_cid(self) -> str: ...
    def get_os_homepage(self) -> str: ...
    def get_os_id(self) -> str: ...
    def get_os_name(self) -> str: ...
    def get_os_version(self) -> str: ...
    def has_device_matching_modalias(self, modalias_glob: str) -> bool: ...
    def has_input_control(self, kind: ControlKind) -> CheckResult: ...
    def modalias_to_syspath(self, modalias: str) -> str: ...
    @classmethod
    def new(cls) -> SystemInfo: ...
    def set_display_length(self, side: DisplaySideKind, value_dip: int) -> None: ...
    def set_input_control(self, kind: ControlKind, found: bool) -> None: ...

class SystemInfoClass(GObject.GPointer):
    """
    :Constructors:

    ::

        SystemInfoClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Translation(GObject.Object):
    """
    :Constructors:

    ::

        Translation(**properties)
        new() -> AppStream.Translation

    Object AsTranslation

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_id(self) -> str: ...
    def get_kind(self) -> TranslationKind: ...
    def get_source_locale(self) -> str: ...
    @classmethod
    def new(cls) -> Translation: ...
    def set_id(self, id: str) -> None: ...
    def set_kind(self, kind: TranslationKind) -> None: ...
    def set_source_locale(self, locale: Optional[str] = None) -> None: ...

class TranslationClass(GObject.GPointer):
    """
    :Constructors:

    ::

        TranslationClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Validator(GObject.Object):
    """
    :Constructors:

    ::

        Validator(**properties)
        new() -> AppStream.Validator

    Object AsValidator

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def add_override(self, tag: str, severity_override: IssueSeverity) -> bool: ...
    def add_release_bytes(
        self, release_fname: str, release_metadata: GLib.Bytes
    ) -> bool: ...
    def add_release_file(self, release_file: Gio.File) -> bool: ...
    def clear_issues(self) -> None: ...
    def clear_release_data(self) -> None: ...
    def get_check_urls(self) -> bool: ...
    def get_issue_files_count(self) -> int: ...
    def get_issues(self) -> list[ValidatorIssue]: ...
    def get_issues_per_file(self) -> dict[str, Sequence[ValidatorIssue]]: ...
    def get_report_yaml(self, yaml_report: str) -> bool: ...
    def get_strict(self) -> bool: ...
    def get_tag_explanation(self, tag: str) -> str: ...
    def get_tag_severity(self, tag: str) -> IssueSeverity: ...
    def get_tags(self) -> list[str]: ...
    @classmethod
    def new(cls) -> Validator: ...
    def set_check_urls(self, value: bool) -> None: ...
    def set_strict(self, is_strict: bool) -> None: ...
    def validate_bytes(self, metadata: GLib.Bytes) -> bool: ...
    def validate_data(self, metadata: str) -> bool: ...
    def validate_file(self, metadata_file: Gio.File) -> bool: ...
    def validate_tree(self, root_dir: str) -> bool: ...

class ValidatorClass(GObject.GPointer):
    """
    :Constructors:

    ::

        ValidatorClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class ValidatorIssue(GObject.Object):
    """
    :Constructors:

    ::

        ValidatorIssue(**properties)
        new() -> AppStream.ValidatorIssue

    Object AsValidatorIssue

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_cid(self) -> str: ...
    def get_explanation(self) -> str: ...
    def get_filename(self) -> str: ...
    def get_hint(self) -> str: ...
    def get_importance(self) -> IssueSeverity: ...
    def get_line(self) -> int: ...
    def get_location(self) -> str: ...
    def get_message(self) -> str: ...
    def get_severity(self) -> IssueSeverity: ...
    def get_tag(self) -> str: ...
    @classmethod
    def new(cls) -> ValidatorIssue: ...
    def set_cid(self, cid: str) -> None: ...
    def set_explanation(self, explanation: str) -> None: ...
    def set_filename(self, fname: str) -> None: ...
    def set_hint(self, hint: str) -> None: ...
    def set_importance(self, importance: IssueSeverity) -> None: ...
    def set_line(self, line: int) -> None: ...
    def set_message(self, message: str) -> None: ...
    def set_severity(self, severity: IssueSeverity) -> None: ...
    def set_tag(self, tag: str) -> None: ...

class ValidatorIssueClass(GObject.GPointer):
    """
    :Constructors:

    ::

        ValidatorIssueClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class Video(GObject.Object):
    """
    :Constructors:

    ::

        Video(**properties)
        new() -> AppStream.Video

    Object AsVideo

    Signals from GObject:
      notify (GParam)
    """

    parent_instance: GObject.Object = ...
    def get_codec_kind(self) -> VideoCodecKind: ...
    def get_container_kind(self) -> VideoContainerKind: ...
    def get_height(self) -> int: ...
    def get_locale(self) -> str: ...
    def get_url(self) -> str: ...
    def get_width(self) -> int: ...
    @classmethod
    def new(cls) -> Video: ...
    def set_codec_kind(self, kind: VideoCodecKind) -> None: ...
    def set_container_kind(self, kind: VideoContainerKind) -> None: ...
    def set_height(self, height: int) -> None: ...
    def set_locale(self, locale: str) -> None: ...
    def set_url(self, url: str) -> None: ...
    def set_width(self, width: int) -> None: ...

class VideoClass(GObject.GPointer):
    """
    :Constructors:

    ::

        VideoClass()
    """

    parent_class: GObject.ObjectClass = ...
    _as_reserved1: None = ...
    _as_reserved2: None = ...
    _as_reserved3: None = ...
    _as_reserved4: None = ...
    _as_reserved5: None = ...
    _as_reserved6: None = ...

class CacheFlags(GObject.GFlags):
    NONE = 0
    NO_CLEAR = 4
    REFRESH_SYSTEM = 8
    USE_SYSTEM = 2
    USE_USER = 1

class DataIdMatchFlags(GObject.GFlags):
    BRANCH = 16
    BUNDLE_KIND = 2
    ID = 8
    NONE = 0
    ORIGIN = 4
    SCOPE = 1

class ParseFlags(GObject.GFlags):
    IGNORE_MEDIABASEURL = 1
    NONE = 0

class PoolFlags(GObject.GFlags):
    IGNORE_CACHE_AGE = 16
    LOAD_FLATPAK = 8
    LOAD_OS_CATALOG = 1
    LOAD_OS_DESKTOP_FILES = 4
    LOAD_OS_METAINFO = 2
    MONITOR = 128
    NONE = 0
    PREFER_OS_METAINFO = 64
    RESOLVE_ADDONS = 32

class ReviewFlags(GObject.GFlags):
    NONE = 0
    SELF = 1
    VOTED = 2

class SearchTokenMatch(GObject.GFlags):
    DESCRIPTION = 8
    ID = 128
    KEYWORD = 32
    MEDIATYPE = 1
    NAME = 64
    NONE = 0
    ORIGIN = 4
    PKGNAME = 2
    SUMMARY = 16

class ValueFlags(GObject.GFlags):
    DUPLICATE_CHECK = 1
    NONE = 0
    NO_TRANSLATION_FALLBACK = 2

class VercmpFlags(GObject.GFlags):
    IGNORE_EPOCH = 1
    NONE = 0

class AgreementKind(GObject.GEnum):
    EULA = 2
    GENERIC = 1
    PRIVACY = 3
    UNKNOWN = 0
    @staticmethod
    def from_string(value: str) -> AgreementKind: ...
    @staticmethod
    def to_string(value: AgreementKind) -> str: ...

class ArtifactKind(GObject.GEnum):
    BINARY = 2
    SOURCE = 1
    UNKNOWN = 0
    @staticmethod
    def from_string(kind: str) -> ArtifactKind: ...
    @staticmethod
    def to_string(kind: ArtifactKind) -> str: ...

class BundleKind(GObject.GEnum):
    APPIMAGE = 4
    CABINET = 7
    FLATPAK = 3
    LIMBA = 2
    PACKAGE = 1
    SNAP = 5
    TARBALL = 6
    UNKNOWN = 0
    @staticmethod
    def from_string(bundle_str: str) -> BundleKind: ...
    @staticmethod
    def to_string(kind: BundleKind) -> str: ...

class CheckResult(GObject.GEnum):
    ERROR = 0
    FALSE = 2
    TRUE = 3
    UNKNOWN = 1

class ChecksumKind(GObject.GEnum):
    BLAKE2B = 3
    BLAKE2S = 4
    NONE = 0
    SHA1 = 1
    SHA256 = 2
    @staticmethod
    def from_string(kind_str: str) -> ChecksumKind: ...
    @staticmethod
    def to_string(kind: ChecksumKind) -> str: ...

class ColorKind(GObject.GEnum):
    PRIMARY = 1
    UNKNOWN = 0
    @staticmethod
    def from_string(str: str) -> ColorKind: ...
    @staticmethod
    def to_string(kind: ColorKind) -> str: ...

class ColorSchemeKind(GObject.GEnum):
    DARK = 2
    LIGHT = 1
    UNKNOWN = 0
    @staticmethod
    def from_string(str: str) -> ColorSchemeKind: ...
    @staticmethod
    def to_string(kind: ColorSchemeKind) -> str: ...

class ComponentKind(GObject.GEnum):
    ADDON = 5
    CODEC = 7
    CONSOLE_APP = 3
    DESKTOP_APP = 2
    DRIVER = 10
    FIRMWARE = 9
    FONT = 6
    GENERIC = 1
    ICON_THEME = 15
    INPUT_METHOD = 8
    LOCALIZATION = 11
    OPERATING_SYSTEM = 14
    REPOSITORY = 13
    RUNTIME = 16
    SERVICE = 12
    UNKNOWN = 0
    WEB_APP = 4
    @staticmethod
    def from_string(kind_str: str) -> ComponentKind: ...
    @staticmethod
    def to_string(kind: ComponentKind) -> str: ...

class ComponentScope(GObject.GEnum):
    SYSTEM = 1
    UNKNOWN = 0
    USER = 2
    @staticmethod
    def from_string(scope_str: str) -> ComponentScope: ...
    @staticmethod
    def to_string(scope: ComponentScope) -> str: ...

class ContentRatingSystem(GObject.GEnum):
    ACB = 2
    CERO = 9
    DJCTQ = 3
    ESRA = 8
    ESRB = 14
    GRAC = 13
    GSRR = 4
    IARC = 15
    INCAA = 1
    KAVI = 6
    MDA = 12
    OFLCNZ = 10
    PEGI = 5
    RUSSIA = 11
    UNKNOWN = 0
    USK = 7
    @staticmethod
    def format_age(system: ContentRatingSystem, age: int) -> Optional[str]: ...
    @staticmethod
    def from_locale(locale: str) -> ContentRatingSystem: ...
    @staticmethod
    def get_csm_ages(system: ContentRatingSystem) -> list[int]: ...
    @staticmethod
    def get_formatted_ages(system: ContentRatingSystem) -> list[str]: ...
    @staticmethod
    def to_string(system: ContentRatingSystem) -> Optional[str]: ...

class ContentRatingValue(GObject.GEnum):
    INTENSE = 4
    MILD = 2
    MODERATE = 3
    NONE = 1
    UNKNOWN = 0
    @staticmethod
    def from_string(value: str) -> ContentRatingValue: ...
    @staticmethod
    def to_string(value: ContentRatingValue) -> str: ...

class ControlKind(GObject.GEnum):
    CONSOLE = 3
    GAMEPAD = 5
    KEYBOARD = 2
    POINTING = 1
    TABLET = 9
    TOUCH = 4
    TV_REMOTE = 8
    UNKNOWN = 0
    VISION = 7
    VOICE = 6
    @staticmethod
    def from_string(kind_str: str) -> ControlKind: ...
    @staticmethod
    def to_string(kind: ControlKind) -> str: ...

class DisplayLengthKind(GObject.GEnum):
    LARGE = 4
    MEDIUM = 3
    SMALL = 2
    UNKNOWN = 0
    XLARGE = 5
    XSMALL = 1
    @staticmethod
    def from_string(kind_str: str) -> DisplayLengthKind: ...
    @staticmethod
    def to_string(kind: DisplayLengthKind) -> str: ...

class DisplaySideKind(GObject.GEnum):
    LONGEST = 2
    SHORTEST = 1
    UNKNOWN = 0
    @staticmethod
    def from_string(kind_str: str) -> DisplaySideKind: ...
    @staticmethod
    def to_string(kind: DisplaySideKind) -> str: ...

class FormatKind(GObject.GEnum):
    DESKTOP_ENTRY = 3
    UNKNOWN = 0
    XML = 1
    YAML = 2
    @staticmethod
    def from_string(kind_str: str) -> FormatKind: ...
    @staticmethod
    def to_string(kind: FormatKind) -> str: ...

class FormatStyle(GObject.GEnum):
    CATALOG = 2
    METAINFO = 1
    UNKNOWN = 0

class FormatVersion(GObject.GEnum):
    UNKNOWN = 11
    V0_10 = 4
    V0_11 = 5
    V0_12 = 6
    V0_13 = 7
    V0_14 = 8
    V0_15 = 9
    V0_16 = 10
    V0_6 = 0
    V0_7 = 1
    V0_8 = 2
    V0_9 = 3
    @staticmethod
    def from_string(version_str: str) -> FormatVersion: ...
    @staticmethod
    def to_string(version: FormatVersion) -> str: ...

class IconKind(GObject.GEnum):
    CACHED = 1
    LOCAL = 3
    REMOTE = 4
    STOCK = 2
    UNKNOWN = 0
    @staticmethod
    def from_string(kind_str: str) -> IconKind: ...
    @staticmethod
    def to_string(kind: IconKind) -> str: ...

class ImageKind(GObject.GEnum):
    SOURCE = 1
    THUMBNAIL = 2
    UNKNOWN = 0
    @staticmethod
    def from_string(kind: str) -> ImageKind: ...
    @staticmethod
    def to_string(kind: ImageKind) -> str: ...

class InternetKind(GObject.GEnum):
    ALWAYS = 1
    FIRST_RUN = 3
    OFFLINE_ONLY = 2
    UNKNOWN = 0
    @staticmethod
    def from_string(kind_str: str) -> InternetKind: ...
    @staticmethod
    def to_string(kind: InternetKind) -> str: ...

class IssueKind(GObject.GEnum):
    CVE = 2
    GENERIC = 1
    UNKNOWN = 0
    @staticmethod
    def from_string(kind_str: str) -> IssueKind: ...
    @staticmethod
    def to_string(kind: IssueKind) -> str: ...

class IssueSeverity(GObject.GEnum):
    ERROR = 1
    INFO = 3
    PEDANTIC = 4
    UNKNOWN = 0
    WARNING = 2
    @staticmethod
    def from_string(str: str) -> IssueSeverity: ...
    @staticmethod
    def to_string(severity: IssueSeverity) -> str: ...

class LaunchableKind(GObject.GEnum):
    COCKPIT_MANIFEST = 3
    DESKTOP_ID = 1
    SERVICE = 2
    UNKNOWN = 0
    URL = 4
    @staticmethod
    def from_string(kind_str: str) -> LaunchableKind: ...
    @staticmethod
    def to_string(kind: LaunchableKind) -> str: ...

class MergeKind(GObject.GEnum):
    APPEND = 2
    NONE = 0
    REMOVE_COMPONENT = 3
    REPLACE = 1
    @staticmethod
    def from_string(kind_str: str) -> MergeKind: ...
    @staticmethod
    def to_string(kind: MergeKind) -> str: ...

class MetadataError(GObject.GEnum):
    FAILED = 0
    FORMAT_UNEXPECTED = 2
    NO_COMPONENT = 3
    PARSE = 1
    VALUE_MISSING = 4
    @staticmethod
    def quark() -> int: ...

class MetadataLocation(GObject.GEnum):
    CACHE = 2
    SHARED = 0
    STATE = 1
    USER = 3

class PoolError(GObject.GEnum):
    COLLISION = 3
    FAILED = 0
    INCOMPLETE = 2
    OLD_CACHE = 4
    TARGET_NOT_WRITABLE = 1
    @staticmethod
    def quark() -> int: ...

class ProvidedKind(GObject.GEnum):
    BINARY = 2
    DBUS_SYSTEM = 8
    DBUS_USER = 9
    FIRMWARE_FLASHED = 11
    FIRMWARE_RUNTIME = 10
    FONT = 4
    ID = 12
    LIBRARY = 1
    MEDIATYPE = 3
    MODALIAS = 5
    PYTHON = 7
    PYTHON_2 = 6
    UNKNOWN = 0
    @staticmethod
    def from_string(kind_str: str) -> ProvidedKind: ...
    @staticmethod
    def to_l10n_string(kind: ProvidedKind) -> str: ...
    @staticmethod
    def to_string(kind: ProvidedKind) -> str: ...

class RelationCompare(GObject.GEnum):
    EQ = 1
    GE = 6
    GT = 4
    LE = 5
    LT = 3
    NE = 2
    UNKNOWN = 0
    @staticmethod
    def from_string(compare_str: str) -> RelationCompare: ...
    @staticmethod
    def to_string(compare: RelationCompare) -> str: ...
    @staticmethod
    def to_symbols_string(compare: RelationCompare) -> str: ...

class RelationError(GObject.GEnum):
    BAD_VALUE = 1
    FAILED = 0
    NOT_IMPLEMENTED = 2
    @staticmethod
    def quark() -> int: ...

class RelationItemKind(GObject.GEnum):
    CONTROL = 6
    DISPLAY_LENGTH = 7
    FIRMWARE = 5
    HARDWARE = 8
    ID = 1
    INTERNET = 9
    KERNEL = 3
    MEMORY = 4
    MODALIAS = 2
    UNKNOWN = 0
    @staticmethod
    def from_string(kind_str: str) -> RelationItemKind: ...
    @staticmethod
    def to_string(kind: RelationItemKind) -> str: ...

class RelationKind(GObject.GEnum):
    RECOMMENDS = 2
    REQUIRES = 1
    SUPPORTS = 3
    UNKNOWN = 0
    @staticmethod
    def from_string(kind_str: str) -> RelationKind: ...
    @staticmethod
    def to_string(kind: RelationKind) -> str: ...

class ReleaseKind(GObject.GEnum):
    DEVELOPMENT = 2
    STABLE = 1
    UNKNOWN = 0
    @staticmethod
    def from_string(kind_str: str) -> ReleaseKind: ...
    @staticmethod
    def to_string(kind: ReleaseKind) -> str: ...

class ReleaseUrlKind(GObject.GEnum):
    DETAILS = 1
    UNKNOWN = 0
    @staticmethod
    def from_string(kind_str: str) -> ReleaseUrlKind: ...
    @staticmethod
    def to_string(kind: ReleaseUrlKind) -> str: ...

class ReleasesKind(GObject.GEnum):
    EMBEDDED = 1
    EXTERNAL = 2
    UNKNOWN = 0
    @staticmethod
    def from_string(kind_str: str) -> ReleasesKind: ...
    @staticmethod
    def to_string(kind: ReleasesKind) -> str: ...

class ScreenshotKind(GObject.GEnum):
    DEFAULT = 1
    EXTRA = 2
    UNKNOWN = 0
    @staticmethod
    def from_string(kind: str) -> ScreenshotKind: ...
    @staticmethod
    def to_string(kind: ScreenshotKind) -> str: ...

class ScreenshotMediaKind(GObject.GEnum):
    IMAGE = 1
    UNKNOWN = 0
    VIDEO = 2

class SizeKind(GObject.GEnum):
    DOWNLOAD = 1
    INSTALLED = 2
    UNKNOWN = 0
    @staticmethod
    def from_string(size_kind: str) -> SizeKind: ...
    @staticmethod
    def to_string(size_kind: SizeKind) -> str: ...

class SuggestedKind(GObject.GEnum):
    HEURISTIC = 2
    UNKNOWN = 0
    UPSTREAM = 1
    @staticmethod
    def from_string(kind_str: str) -> SuggestedKind: ...
    @staticmethod
    def to_string(kind: SuggestedKind) -> str: ...

class SystemInfoError(GObject.GEnum):
    FAILED = 0
    NOT_FOUND = 1
    @staticmethod
    def quark() -> int: ...

class TranslationKind(GObject.GEnum):
    GETTEXT = 1
    QT = 2
    UNKNOWN = 0
    @staticmethod
    def from_string(kind_str: str) -> TranslationKind: ...
    @staticmethod
    def to_string(kind: TranslationKind) -> str: ...

class UrgencyKind(GObject.GEnum):
    CRITICAL = 4
    HIGH = 3
    LOW = 1
    MEDIUM = 2
    UNKNOWN = 0
    @staticmethod
    def from_string(urgency_kind: str) -> UrgencyKind: ...
    @staticmethod
    def to_string(urgency_kind: UrgencyKind) -> str: ...

class UrlKind(GObject.GEnum):
    BUGTRACKER = 2
    CONTACT = 7
    CONTRIBUTE = 9
    DONATION = 5
    FAQ = 3
    HELP = 4
    HOMEPAGE = 1
    TRANSLATE = 6
    UNKNOWN = 0
    VCS_BROWSER = 8
    @staticmethod
    def from_string(url_kind: str) -> UrlKind: ...
    @staticmethod
    def to_string(url_kind: UrlKind) -> str: ...

class UtilsError(GObject.GEnum):
    FAILED = 0
    @staticmethod
    def quark() -> int: ...

class ValidatorError(GObject.GEnum):
    FAILED = 0
    INVALID_FILENAME = 2
    OVERRIDE_INVALID = 1
    @staticmethod
    def quark() -> int: ...

class VideoCodecKind(GObject.GEnum):
    AV1 = 2
    UNKNOWN = 0
    VP9 = 1
    @staticmethod
    def from_string(str: str) -> VideoCodecKind: ...
    @staticmethod
    def to_string(kind: VideoCodecKind) -> str: ...

class VideoContainerKind(GObject.GEnum):
    MKV = 1
    UNKNOWN = 0
    WEBM = 2
    @staticmethod
    def from_string(str: str) -> VideoContainerKind: ...
    @staticmethod
    def to_string(kind: VideoContainerKind) -> str: ...
