import pandas as pd
from _typeshed import Incomplete

class RedisWeightsClient:
    version: str
    strategy_name: Incomplete
    key_prefix: Incomplete
    redis_url: Incomplete
    r: Incomplete
    lua_publish: Incomplete
    heartbeat_prefix: Incomplete
    heartbeat_client: Incomplete
    heartbeat_thread: Incomplete
    def __init__(self, strategy_name, redis_url=None, connection_pool=None, send_heartbeat: bool = True, **kwargs) -> None: ...
    def set_metadata(self, base_freq, description, author, outsample_sdt, **kwargs) -> None: ...
    def update_last(self, **kwargs) -> None: ...
    @property
    def metadata(self): ...
    @property
    def heartbeat_time(self): ...
    def get_last_times(self, symbols=None): ...
    def publish(self, symbol, dt, weight, price: int = 0, ref=None, overwrite: bool = False): ...
    def publish_dataframe(self, df, overwrite: bool = False, batch_size: int = 10000): ...
    def get_keys(self, pattern) -> list: ...
    def clear_all(self, with_human: bool = True) -> None: ...
    @staticmethod
    def register_lua_publish(client): ...
    def get_symbols(self): ...
    def get_last_weights(self, symbols=None, ignore_zero: bool = True, lua: bool = True): ...
    def get_hist_weights(self, symbol, sdt, edt) -> pd.DataFrame: ...
    def get_all_weights(self, sdt=None, edt=None, **kwargs) -> pd.DataFrame: ...

def clear_strategy(strategy_name, redis_url=None, connection_pool=None, key_prefix: str = 'Weights', **kwargs) -> None: ...
def get_strategy_weights(strategy_name, redis_url=None, connection_pool=None, key_prefix: str = 'Weights', **kwargs): ...
def get_strategy_mates(redis_url=None, connection_pool=None, key_pattern: str = 'Weights:META:*', **kwargs): ...
def get_heartbeat_time(strategy_name=None, redis_url=None, connection_pool=None, key_prefix: str = 'Weights', **kwargs): ...
def get_strategy_names(redis_url=None, connection_pool=None, key_prefix: str = 'Weights'): ...
def get_strategy_latest(redis_url=None, connection_pool=None, key_prefix: str = 'Weights'): ...
