from abc import ABC, abstractmethod
from typing import Dict, List

from promptlab.config import ExperimentConfig, TracerConfig

class Tracer(ABC):
    def __init__(self, tracer_config: TracerConfig):
        pass

    @abstractmethod
    def init_db(self):
        pass

    @abstractmethod
    def trace(self,experiment_config: ExperimentConfig, experiment_summary: List[Dict]):
        pass