from typing import Protocol

from ..schemas import PlanRequest, PlanResult
from ..tools import ToolDefinition


class ModelProvider(Protocol):
    name: str

    @property
    def configured(self) -> bool: ...

    async def create_plan(
        self, request: PlanRequest, tools: list[ToolDefinition]
    ) -> PlanResult: ...
