from datetime import datetime

from lxml.etree import Element
from lxml.objectify import ObjectifiedElement
from pykeepass.baseelement import BaseElement
from pykeepass.entry import Entry
from pykeepass.pykeepass import PyKeePass

class Group(BaseElement):
    def __init__(
        self,
        name: str | None = None,
        element: Element | ObjectifiedElement | None = None,
        icon: str | None = None,
        notes: str | None = None,
        kp: PyKeePass | None = None,
        expires: bool | None = None,
        expiry_time: datetime | None = None,
    ) -> None: ...
    @property
    def name(self) -> str | None: ...
    @name.setter
    def name(self, value: str) -> None: ...
    @property
    def notes(self) -> str | None: ...
    @notes.setter
    def notes(self, value: str) -> None: ...
    @property
    def entries(self) -> list[Entry]: ...
    @property
    def subgroups(self) -> list[Group]: ...
    @property
    def is_root_group(self) -> bool: ...
    @property
    def path(self) -> list[str | None]: ...
    @property
    def group(self) -> Group | None: ...
    @property
    def parentgroup(self) -> Group | None: ...
    def append(self, entries: Entry | Group | list[Entry] | list[Group]) -> None: ...
    def __str__(self) -> str: ...
