"""
This type stub file was generated by pyright.
"""

from typing import Any, Mapping, Union
from aiohttp import web
from .__about__ import __author__, __copyright__, __email__, __license__, __summary__, __title__, __uri__, __version__
from .resource_options import ResourceOptions
from .cors_config import CorsConfig
from .mixin import CorsViewMixin, custom_cors

"""CORS support for aiohttp.
"""
__all__ = ("__title__", "__version__", "__author__", "__email__", "__summary__", "__uri__", "__license__", "__copyright__", "setup", "CorsConfig", "ResourceOptions", "CorsViewMixin", "custom_cors")
APP_CONFIG_KEY = "aiohttp_cors"
def setup(app: web.Application, *, defaults: Mapping[str, Union[ResourceOptions, Mapping[str, Any]]] = ...) -> CorsConfig:
    """Setup CORS processing for the application.

    To enable CORS for a resource you need to explicitly add route for
    that resource using `CorsConfig.add()` method::

        app = aiohttp.web.Application()
        cors = aiohttp_cors.setup(app)
        cors.add(
            app.router.add_route("GET", "/resource", handler),
            {
                "*": aiohttp_cors.ResourceOptions(
                    allow_credentials=True,
                    expose_headers="*",
                    allow_headers="*"),
            })

    :param app:
        The application for which CORS will be configured.
    :param defaults:
        Default settings for origins.
    )
    """
    ...

