import numpy as np

from ._typing import *

CharMetrics = ...
CompositePart = ...

class AFM:
    def __init__(self, fh) -> None: ...
    def get_bbox_char(self, c: str, isord: bool = False): ...
    def string_width_height(self, s: str) -> tuple[float, float]: ...
    def get_str_bbox_and_descent(self, s: str) -> tuple[float, ...]: ...
    def get_str_bbox(self, s: str) -> tuple[float, ...]: ...
    def get_name_char(self, c: str, isord: bool = False) -> str: ...
    def get_width_char(self, c: str, isord: bool = False) -> float: ...
    def get_width_from_char_name(self, name: str) -> float: ...
    def get_height_char(self, c: str, isord: bool = False) -> float: ...
    def get_kern_dist(self, c1: str, c2: str) -> float: ...
    def get_kern_dist_from_name(self, name1: str, name2: str) -> float: ...
    def get_fontname(self) -> str: ...
    @property
    def postscript_name(self) -> str: ...
    def get_fullname(self) -> str: ...
    def get_familyname(self) -> str: ...
    @property
    def family_name(self) -> str: ...
    def get_weight(self) -> str: ...
    def get_angle(self) -> float: ...
    def get_capheight(self) -> float: ...
    def get_xheight(self) -> float: ...
    def get_underline_thickness(self) -> float: ...
    def get_horizontal_stem_width(self) -> float | None: ...
    def get_vertical_stem_width(self) -> float | None: ...
