from homeassistant import core as core
from homeassistant.components.websocket_api.const import JSON_DUMP as JSON_DUMP
from homeassistant.const import ATTR_NOW as ATTR_NOW, EVENT_STATE_CHANGED as EVENT_STATE_CHANGED, EVENT_TIME_CHANGED as EVENT_TIME_CHANGED
from homeassistant.helpers.entityfilter import convert_include_exclude_filter as convert_include_exclude_filter
from homeassistant.helpers.json import JSONEncoder as JSONEncoder
from typing import Callable, TypeVar

CALLABLE_T = TypeVar('CALLABLE_T', bound=Callable)
BENCHMARKS: dict[str, Callable]

def run(args) -> None: ...
async def run_benchmark(bench) -> None: ...
def benchmark(func: CALLABLE_T) -> CALLABLE_T: ...
async def fire_events(hass): ...
async def fire_events_with_filter(hass): ...
async def time_changed_helper(hass): ...
async def state_changed_helper(hass): ...
async def state_changed_event_helper(hass): ...
async def state_changed_event_filter_helper(hass): ...
async def logbook_filtering_state(hass): ...
async def logbook_filtering_attributes(hass): ...
async def _logbook_filtering(hass, last_changed, last_updated): ...
async def filtering_entity_id(hass): ...
async def valid_entity_id(hass): ...
async def json_serialize_states(hass): ...
def _create_state_changed_event_from_old_new(entity_id, event_time_fired, old_state, new_state): ...
