# This file is automatically generated by pyo3_stub_gen
# ruff: noqa: E501

import typing

from nautilus_trader.core.datetime import dt_to_unix_nanos as dt_to_unix_nanos
from nautilus_trader.core.datetime import unix_nanos_to_dt as unix_nanos_to_dt

__all__ = [
    "MILLISECONDS_IN_SECOND",
    "NANOSECONDS_IN_MICROSECOND",
    "NANOSECONDS_IN_MILLISECOND",
    "NANOSECONDS_IN_SECOND",
    "NAUTILUS_USER_AGENT",
    "NAUTILUS_VERSION",
    "UUID4",
    "convert_to_snake_case",
    "is_within_last_24_hours",
    "last_weekday_nanos",
    "mask_api_key",
    "micros_to_nanos",
    "millis_to_nanos",
    "nanos_to_micros",
    "nanos_to_millis",
    "nanos_to_secs",
    "secs_to_millis",
    "secs_to_nanos",
    "unix_nanos_to_iso8601",
]

NAUTILUS_VERSION: str
NAUTILUS_USER_AGENT: str
MILLISECONDS_IN_SECOND: int
NANOSECONDS_IN_SECOND: int
NANOSECONDS_IN_MILLISECOND: int
NANOSECONDS_IN_MICROSECOND: int

@typing.final
class UUID4:
    def __init__(self) -> None: ...
    def __setstate__(self, state: typing.Any) -> None: ...
    def __getstate__(self) -> typing.Any: ...
    def __reduce__(self) -> typing.Any: ...
    def __hash__(self) -> int: ...
    @property
    def value(self) -> str: ...
    @staticmethod
    def from_str(value: str) -> UUID4: ...

def convert_to_snake_case(input: str) -> str: ...
def is_within_last_24_hours(timestamp_ns: int) -> bool: ...
def last_weekday_nanos(year: int, month: int, day: int) -> int: ...
def mask_api_key(api_key: str) -> str: ...
def micros_to_nanos(micros: float) -> int: ...
def millis_to_nanos(millis: float) -> int: ...
def nanos_to_micros(nanos: int) -> int: ...
def nanos_to_millis(nanos: int) -> int: ...
def nanos_to_secs(nanos: int) -> float: ...
def secs_to_millis(secs: float) -> int: ...
def secs_to_nanos(secs: float) -> int: ...
def unix_nanos_to_iso8601(timestamp_ns: int, nanos_precision: bool | None = True) -> str: ...
