import types
from _typeshed import Incomplete

class BaseIcon:
    target_path: Incomplete
    icon_path: Incomplete
    shell: Incomplete
    hUpdate: Incomplete
    hIcon: Incomplete
    def __init__(self, target_path, icon_path) -> None: ...
    def __enter__(self): ...
    def __exit__(self, exc_type: type[BaseException] | None, exc_val: BaseException | None, exc_tb: types.TracebackType | None) -> None: ...

class ExeIcon(BaseIcon):
    def __init__(self, target_path, icon_path) -> None: ...
    hIcon: Incomplete
    def __enter__(self): ...
    hUpdate: Incomplete
    def icon(self) -> None: ...
    def get_icon(self): ...

class LnkIcon(BaseIcon):
    def __init__(self, target_path, icon_path) -> None: ...
    shell: Incomplete
    def __enter__(self): ...
    def icon(self) -> None: ...
    def get_icon(self): ...
