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: ...
