import httpx
from _typeshed import Incomplete as Incomplete
from civitai_api.models.creators import Creators_API_Opts as Creators_API_Opts, Response_Creaters as Response_Creaters
from civitai_api.models.images import Images_API_Opts as Images_API_Opts, Response_Images as Response_Images
from civitai_api.models.models import Models_API_Opts as Models_API_Opts, Response_Models as Response_Models, Response_Models_modelVersion as Response_Models_modelVersion
from civitai_api.models.models_by_id import Response_Model_ById as Response_Model_ById
from typing import Any

API_URL_V1: str
API_URL_V1_Creators: Incomplete
API_URL_V1_Images: Incomplete
API_URL_V1_Models: Incomplete
API_URL_V1_Model_By_Id: Incomplete
API_URL_ModelVersion_By_VersionId: Incomplete
API_URL_ModelVersion_By_Hash: Incomplete
API_URL_Tags: Incomplete

def construct_query_params_from_dict(params: dict[str, list[Any]]): ...
def get_creators_v1(httpx_client: httpx.Client, opts: Creators_API_Opts | None = None) -> Response_Creaters: ...
async def async_get_creators_v1(httpx_async_client: httpx.AsyncClient, opts: Creators_API_Opts | None = None) -> Response_Creaters: ...
def get_images_v1(httpx_client: httpx.Client, opts: Images_API_Opts | None = None) -> Response_Images: ...
async def async_get_images_v1(httpx_async_client: httpx.AsyncClient, opts: Images_API_Opts | None = None) -> Response_Images: ...
def get_models_v1(httpx_client: httpx.Client, opts: Models_API_Opts | None = None) -> Response_Models: ...
async def async_get_models_v1(httpx_async_client: httpx.AsyncClient, opts: Models_API_Opts | None = None) -> Response_Models: ...
def get_model_by_id_v1(httpx_client: httpx.Client, modelId: int) -> Response_Model_ById: ...
async def async_get_model_by_id_v1(httpx_async_client: httpx.AsyncClient, modelId: int) -> Response_Model_ById: ...
def get_model_by_versionId_v1(httpx_client: httpx.Client, modelVersionId: int) -> Response_Models_modelVersion: ...
async def async_get_model_by_versionId_v1(httpx_async_client: httpx.AsyncClient, modelVersionId: int) -> Response_Models_modelVersion: ...
def get_model_by_hash_v1(httpx_client: httpx.Client, hash: str) -> Response_Models_modelVersion: ...
async def async_get_model_by_hash_v1(httpx_async_client: httpx.AsyncClient, hash: str) -> Response_Models_modelVersion: ...

class CivitaiAPI:
    api_key: Incomplete
    proxy: Incomplete
    httpx_client: Incomplete
    httpx_async_client: Incomplete
    def __init__(self, api_key: str, proxy: str | None = None) -> None: ...
    def get_creators_v1(self, opts: Creators_API_Opts | None = None) -> Response_Creaters: ...
    async def async_get_creators_v1(self, opts: Creators_API_Opts | None = None) -> Response_Creaters: ...
    def get_images_v1(self, opts: Images_API_Opts | None = None) -> Response_Images: ...
    async def async_get_images_v1(self, opts: Images_API_Opts | None = None) -> Response_Images: ...
    def get_models_v1(self, opts: Models_API_Opts | None = None) -> Response_Models: ...
    async def async_get_models_v1(self, opts: Models_API_Opts | None = None) -> Response_Models: ...
    def get_model_by_id_v1(self, modelId: int) -> Response_Model_ById: ...
    async def async_get_model_by_id_v1(self, modelId: int) -> Response_Model_ById: ...
    def get_model_by_versionId_v1(self, modelVersionId: int) -> Response_Models_modelVersion: ...
    async def async_get_model_by_versionId_v1(self, modelVersionId: int) -> Response_Models_modelVersion: ...
    def get_model_by_hash_v1(self, hash: str) -> Response_Models_modelVersion: ...
    async def async_get_model_by_hash_v1(self, hash: str) -> Response_Models_modelVersion: ...
