"""Browser Use Python SDK.

Default imports expose the v2 client and core error type.
For v3, use ``from browser_use_sdk.v3 import BrowserUse``.
"""

from ._core.errors import BrowserUseError
from .v2.client import AsyncBrowserUse, BrowserUse
from .v2.helpers import AsyncTaskRun, TaskResult, TaskStream

from .generated.v2.models import (
    AccountView,
    BrowserSessionItemView,
    BrowserSessionListResponse,
    BrowserSessionView,
    CreateBrowserSessionRequest,
    CreateSessionRequest,
    CreateSkillRequest,
    CreateSkillResponse,
    CreateTaskRequest,
    CustomProxy,
    ExecuteSkillRequest,
    ExecuteSkillResponse,
    FileView,
    ProfileCreateRequest,
    ProfileUpdateRequest,
    MarketplaceSkillListResponse,
    MarketplaceSkillResponse,
    ParameterSchema,
    PlanInfo,
    ProfileListResponse,
    ProfileView,
    RefineSkillRequest,
    RefineSkillResponse,
    SessionItemView,
    SessionListResponse,
    SessionSettings,
    SessionView,
    ShareView,
    SkillExecutionListResponse,
    SkillExecutionOutputResponse,
    SkillExecutionView,
    SkillListResponse,
    SkillResponse,
    TaskCreatedResponse,
    TaskListResponse,
    TaskLogFileResponse,
    TaskOutputFileResponse,
    TaskStatusView,
    TaskStepView,
    TaskItemView,
    TaskView,
    UpdateBrowserSessionRequest,
    UpdateSessionRequest,
    UpdateSkillRequest,
    UpdateTaskRequest,
    UploadFilePresignedUrlResponse,
    UploadFileRequest,
    # Enums
    BrowserSessionStatus,
    BrowserSessionUpdateAction,
    ContentType,
    ParameterType,
    ProxyCountryCode,
    SessionStatus,
    SessionUpdateAction,
    SkillCategory,
    SkillsGenerationStatus,
    SupportedLLMs,
    TaskStatus,
    TaskUpdateAction,
)

__all__ = [
    # Client
    "BrowserUse",
    "AsyncBrowserUse",
    "BrowserUseError",
    "TaskStream",
    "AsyncTaskRun",
    "TaskResult",
    # Response models
    "AccountView",
    "BrowserSessionItemView",
    "BrowserSessionListResponse",
    "BrowserSessionView",
    "CreateSkillResponse",
    "ExecuteSkillResponse",
    "FileView",
    "MarketplaceSkillListResponse",
    "MarketplaceSkillResponse",
    "ParameterSchema",
    "PlanInfo",
    "ProfileListResponse",
    "ProfileView",
    "RefineSkillResponse",
    "SessionItemView",
    "SessionListResponse",
    "SessionView",
    "ShareView",
    "SkillExecutionListResponse",
    "SkillExecutionOutputResponse",
    "SkillExecutionView",
    "SkillListResponse",
    "SkillResponse",
    "TaskCreatedResponse",
    "TaskListResponse",
    "TaskLogFileResponse",
    "TaskOutputFileResponse",
    "TaskStatusView",
    "TaskStepView",
    "TaskItemView",
    "TaskView",
    "UploadFilePresignedUrlResponse",
    # Input models
    "CreateBrowserSessionRequest",
    "CreateSessionRequest",
    "CreateSkillRequest",
    "CreateTaskRequest",
    "CustomProxy",
    "ExecuteSkillRequest",
    "ProfileCreateRequest",
    "ProfileUpdateRequest",
    "RefineSkillRequest",
    "SessionSettings",
    "UpdateBrowserSessionRequest",
    "UpdateSessionRequest",
    "UpdateSkillRequest",
    "UpdateTaskRequest",
    "UploadFileRequest",
    # Enums
    "BrowserSessionStatus",
    "BrowserSessionUpdateAction",
    "ContentType",
    "ParameterType",
    "ProxyCountryCode",
    "SessionStatus",
    "SessionUpdateAction",
    "SkillCategory",
    "SkillsGenerationStatus",
    "SupportedLLMs",
    "TaskStatus",
    "TaskUpdateAction",
]
