"""Type stub file for the Blueprints API service."""

from typing import Dict, List, Any, Optional, cast

from ..services.base_api_service import BaseAPIService
from ..types import Blueprint

class Blueprints(BaseAPIService):
    """Blueprints API category for managing blueprint definitions."""
    
    def __init__(self, client) -> None: ...
    
    def get_blueprints(self, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Blueprint]: ...
    
    def get_blueprint(self, blueprint_identifier: str) -> Blueprint: ...
    
    def create_blueprint(self, blueprint_data: Dict[str, Any]) -> Blueprint: ...
    
    def update_blueprint(self, blueprint_identifier: str, blueprint_data: Dict[str, Any]) -> Blueprint: ...
    
    def delete_blueprint(self, blueprint_identifier: str) -> bool: ...
    
    def get_blueprint_permissions(self, blueprint_identifier: str) -> Dict[str, Any]: ...
    
    def update_blueprint_permissions(self, blueprint_identifier: str, permissions_data: Dict[str, Any]) -> Dict[str, Any]: ...
    
    def rename_blueprint_property(self, blueprint_identifier: str, property_name: str, rename_data: Dict[str, Any]) -> Dict[str, Any]: ...
    
    def rename_blueprint_mirror(self, blueprint_identifier: str, mirror_name: str, rename_data: Dict[str, Any]) -> Dict[str, Any]: ...
    
    def rename_blueprint_relation(self, blueprint_identifier: str, relation_identifier: str, rename_data: Dict[str, Any]) -> Dict[str, Any]: ...
    
    def get_blueprint_system_structure(self, blueprint_identifier: str) -> Dict[str, Any]: ...
