import abc
from _typeshed import Incomplete
from abc import abstractmethod

class Context(metaclass=abc.ABCMeta):
    @abstractmethod
    def get_message_id(self): ...
    @abstractmethod
    def get_message_key(self): ...
    @abstractmethod
    def get_message_eventtime(self): ...
    @abstractmethod
    def get_message_properties(self): ...
    @abstractmethod
    def get_current_message_topic_name(self): ...
    @abstractmethod
    def get_function_tenant(self): ...
    @abstractmethod
    def get_function_namespace(self): ...
    @abstractmethod
    def get_function_name(self): ...
    @abstractmethod
    def get_function_id(self): ...
    @abstractmethod
    def get_instance_id(self): ...
    @abstractmethod
    def get_function_version(self): ...
    @abstractmethod
    def get_logger(self): ...
    @abstractmethod
    def get_user_config_value(self, key): ...
    @abstractmethod
    def get_user_config_map(self): ...
    @abstractmethod
    def get_secret(self, secret_name): ...
    @abstractmethod
    def get_partition_key(self): ...
    @abstractmethod
    def get_ordering_key(self): ...
    @abstractmethod
    def record_metric(self, metric_name, metric_value): ...
    @abstractmethod
    def publish(self, topic_name, message, serde_class_name: str = 'serde.IdentitySerDe', properties: Incomplete | None = None, compression_type: Incomplete | None = None, callback: Incomplete | None = None, message_conf: Incomplete | None = None): ...
    @abstractmethod
    def get_input_topics(self): ...
    @abstractmethod
    def get_output_topic(self): ...
    @abstractmethod
    def get_output_serde_class_name(self): ...
    @abstractmethod
    def ack(self, msgid, topic): ...
    @abstractmethod
    def incr_counter(self, key, amount): ...
    @abstractmethod
    def get_counter(self, key): ...
    @abstractmethod
    def del_counter(self, key): ...
    @abstractmethod
    def put_state(self, key, value): ...
    @abstractmethod
    def get_state(self, key): ...
