from collections.abc import Callable as Callable
from homeassistant import core as core
from homeassistant.const import EVENT_STATE_CHANGED as EVENT_STATE_CHANGED
from homeassistant.helpers.entityfilter import convert_include_exclude_filter as convert_include_exclude_filter
from homeassistant.helpers.event import async_track_state_change as async_track_state_change, async_track_state_change_event as async_track_state_change_event
from homeassistant.helpers.json import JSON_DUMP as JSON_DUMP

BENCHMARKS: dict[str, Callable]

def run(args) -> None: ...
async def run_benchmark(bench) -> None: ...
def benchmark[_CallableT: Callable](func: _CallableT) -> _CallableT: ...
@benchmark
async def fire_events(hass: core.HomeAssistant) -> float: ...
@benchmark
async def fire_events_with_filter(hass: core.HomeAssistant) -> float: ...
@benchmark
async def state_changed_helper(hass: core.HomeAssistant) -> float: ...
@benchmark
async def state_changed_event_helper(hass: core.HomeAssistant) -> float: ...
@benchmark
async def state_changed_event_filter_helper(hass: core.HomeAssistant) -> float: ...
@benchmark
async def filtering_entity_id(hass: core.HomeAssistant) -> float: ...
@benchmark
async def valid_entity_id(hass: core.HomeAssistant) -> float: ...
@benchmark
async def json_serialize_states(hass: core.HomeAssistant) -> float: ...
