from typing import Any, Dict, Optional, TypeVar

from .registry import Registry

T = TypeVar('T', bound='Builder')

class Builder:
    builder_map: Dict[str, Any]

    def __init__(self: T) -> None: ...
    def set_value(self: T, name: str, v: Any) -> T: ...
    def get_builder_map(self) -> Dict[str, Any]: ...

def delete_value(builder: Builder, name: str) -> Builder: ...
def extend(builder: Builder, name: str, vs: Any) -> Builder: ...
def get_value(builder: Builder, name: str) -> Optional[Any]: ...
def get_map(builder: Builder) -> Dict[str, Any]: ...
def get_struct(builder: Builder, registry: Registry) -> Any: ...
