"""Type stubs for the s3bolt native extension."""

__version__: str

class S3CopyEngine:
    """High-performance S3 copy engine backed by async Rust.

    Parameters
    ----------
    source_profile : str, optional
        AWS profile name for the source bucket.
    dest_profile : str, optional
        AWS profile name for the destination bucket.
    """

    def __init__(
        self,
        source_profile: str | None = None,
        dest_profile: str | None = None,
    ) -> None: ...

    def copy(
        self,
        source: str,
        destination: str,
        /,
        recursive: bool = False,
        sync_mode: bool = False,
        dry_run: bool = False,
        max_concurrent: int = 256,
        include: list[str] | None = None,
        exclude: list[str] | None = None,
        storage_class: str | None = None,
    ) -> dict[str, object]:
        """Copy S3 objects from source to destination.

        Parameters
        ----------
        source : str
            Source S3 URI (e.g., ``s3://bucket/prefix/``).
        destination : str
            Destination S3 URI.
        recursive : bool
            Recursively copy all objects under prefix.
        sync_mode : bool
            Only copy new or changed objects.
        dry_run : bool
            List objects without copying.
        max_concurrent : int
            Maximum concurrent copy operations.
        include : list[str], optional
            Glob patterns to include.
        exclude : list[str], optional
            Glob patterns to exclude.
        storage_class : str, optional
            Override destination storage class.

        Returns
        -------
        dict
            Copy manifest with keys: ``total_objects``, ``total_bytes``,
            ``copied_objects``, ``copied_bytes``, ``skipped_objects``,
            ``failed_objects``, ``duration_secs``, ``failed_keys``.
        """
        ...
