from __future__ import annotations
from collections.abc import Callable
from kiota_abstractions.base_request_builder import BaseRequestBuilder
from kiota_abstractions.get_path_parameters import get_path_parameters
from kiota_abstractions.request_adapter import RequestAdapter
from typing import Any, Optional, TYPE_CHECKING, Union

if TYPE_CHECKING:
    from .collections.collections_request_builder import CollectionsRequestBuilder
    from .exports.exports_request_builder import ExportsRequestBuilder
    from .sheets.sheets_request_builder import SheetsRequestBuilder
    from .sheets_batch_delete.sheets_batch_delete_request_builder import SheetsBatchDeleteRequestBuilder
    from .sheets_batch_get.sheets_batch_get_request_builder import SheetsBatchGetRequestBuilder
    from .sheets_batch_restore.sheets_batch_restore_request_builder import SheetsBatchRestoreRequestBuilder
    from .sheets_batch_update.sheets_batch_update_request_builder import SheetsBatchUpdateRequestBuilder
    from .storage.storage_request_builder import StorageRequestBuilder
    from .uploads.uploads_request_builder import UploadsRequestBuilder
    from .version_sets.version_sets_request_builder import VersionSetsRequestBuilder
    from .version_sets_batch_delete.version_sets_batch_delete_request_builder import VersionSetsBatchDeleteRequestBuilder
    from .version_sets_batch_get.version_sets_batch_get_request_builder import VersionSetsBatchGetRequestBuilder

class WithProjectItemRequestBuilder(BaseRequestBuilder):
    """
    Builds and executes requests for operations under /construction/sheets/v1/projects/{projectId}
    """
    def __init__(self,request_adapter: RequestAdapter, path_parameters: Union[str, dict[str, Any]]) -> None:
        """
        Instantiates a new WithProjectItemRequestBuilder and sets the default values.
        param path_parameters: The raw url or the url-template parameters for the request.
        param request_adapter: The request adapter to use to execute the requests.
        Returns: None
        """
        super().__init__(request_adapter, "{+baseurl}/construction/sheets/v1/projects/{projectId}", path_parameters)
    
    @property
    def collections(self) -> CollectionsRequestBuilder:
        """
        The collections property
        """
        from .collections.collections_request_builder import CollectionsRequestBuilder

        return CollectionsRequestBuilder(self.request_adapter, self.path_parameters)
    
    @property
    def exports(self) -> ExportsRequestBuilder:
        """
        The exports property
        """
        from .exports.exports_request_builder import ExportsRequestBuilder

        return ExportsRequestBuilder(self.request_adapter, self.path_parameters)
    
    @property
    def sheets(self) -> SheetsRequestBuilder:
        """
        The sheets property
        """
        from .sheets.sheets_request_builder import SheetsRequestBuilder

        return SheetsRequestBuilder(self.request_adapter, self.path_parameters)
    
    @property
    def sheets_batch_delete(self) -> SheetsBatchDeleteRequestBuilder:
        """
        The sheetsBatchDelete property
        """
        from .sheets_batch_delete.sheets_batch_delete_request_builder import SheetsBatchDeleteRequestBuilder

        return SheetsBatchDeleteRequestBuilder(self.request_adapter, self.path_parameters)
    
    @property
    def sheets_batch_get(self) -> SheetsBatchGetRequestBuilder:
        """
        The sheetsBatchGet property
        """
        from .sheets_batch_get.sheets_batch_get_request_builder import SheetsBatchGetRequestBuilder

        return SheetsBatchGetRequestBuilder(self.request_adapter, self.path_parameters)
    
    @property
    def sheets_batch_restore(self) -> SheetsBatchRestoreRequestBuilder:
        """
        The sheetsBatchRestore property
        """
        from .sheets_batch_restore.sheets_batch_restore_request_builder import SheetsBatchRestoreRequestBuilder

        return SheetsBatchRestoreRequestBuilder(self.request_adapter, self.path_parameters)
    
    @property
    def sheets_batch_update(self) -> SheetsBatchUpdateRequestBuilder:
        """
        The sheetsBatchUpdate property
        """
        from .sheets_batch_update.sheets_batch_update_request_builder import SheetsBatchUpdateRequestBuilder

        return SheetsBatchUpdateRequestBuilder(self.request_adapter, self.path_parameters)
    
    @property
    def storage(self) -> StorageRequestBuilder:
        """
        The storage property
        """
        from .storage.storage_request_builder import StorageRequestBuilder

        return StorageRequestBuilder(self.request_adapter, self.path_parameters)
    
    @property
    def uploads(self) -> UploadsRequestBuilder:
        """
        The uploads property
        """
        from .uploads.uploads_request_builder import UploadsRequestBuilder

        return UploadsRequestBuilder(self.request_adapter, self.path_parameters)
    
    @property
    def version_sets(self) -> VersionSetsRequestBuilder:
        """
        The versionSets property
        """
        from .version_sets.version_sets_request_builder import VersionSetsRequestBuilder

        return VersionSetsRequestBuilder(self.request_adapter, self.path_parameters)
    
    @property
    def version_sets_batch_delete(self) -> VersionSetsBatchDeleteRequestBuilder:
        """
        The versionSetsBatchDelete property
        """
        from .version_sets_batch_delete.version_sets_batch_delete_request_builder import VersionSetsBatchDeleteRequestBuilder

        return VersionSetsBatchDeleteRequestBuilder(self.request_adapter, self.path_parameters)
    
    @property
    def version_sets_batch_get(self) -> VersionSetsBatchGetRequestBuilder:
        """
        The versionSetsBatchGet property
        """
        from .version_sets_batch_get.version_sets_batch_get_request_builder import VersionSetsBatchGetRequestBuilder

        return VersionSetsBatchGetRequestBuilder(self.request_adapter, self.path_parameters)
    

