# Copyright 2024-present Coinbase Global, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from .service import StakingService
from .create_stake import (
    StakingInputs,
    CreateStakeRequest,
    CreateStakeResponse
)
from .create_unstake import (
    CreateUnstakeRequest,
    CreateUnstakeResponse
)
from .create_portfolio_stake import (
    StakeMetadata,
    CreatePortfolioStakeRequest,
    CreatePortfolioStakeResponse
)
from .create_portfolio_unstake import (
    UnstakeMetadata,
    CreatePortfolioUnstakeRequest,
    CreatePortfolioUnstakeResponse
)
from .claim_wallet_staking_rewards import (
    ClaimRewardsInputs,
    ClaimWalletStakingRewardsRequest,
    ClaimWalletStakingRewardsResponse
)
from .query_transaction_validators import (
    QueryTransactionValidatorsRequest,
    QueryTransactionValidatorsResponse
)
from .get_unstaking_status import (
    UnstakeStatusDetail,
    ValidatorUnstakeStatus,
    GetUnstakingStatusRequest,
    GetUnstakingStatusResponse
)
from .get_staking_status import (
    StakingStatus,
    ValidatorStakingInfo,
    GetStakingStatusRequest,
    GetStakingStatusResponse
)
from .preview_unstake import (
    PreviewUnstakeRequest,
    PreviewUnstakeResponse
)

__all__ = [
    "StakingService",
    "StakingInputs",
    "CreateStakeRequest",
    "CreateStakeResponse",
    "CreateUnstakeRequest",
    "CreateUnstakeResponse",
    "StakeMetadata",
    "CreatePortfolioStakeRequest",
    "CreatePortfolioStakeResponse",
    "UnstakeMetadata",
    "CreatePortfolioUnstakeRequest",
    "CreatePortfolioUnstakeResponse",
    "ClaimRewardsInputs",
    "ClaimWalletStakingRewardsRequest",
    "ClaimWalletStakingRewardsResponse",
    "QueryTransactionValidatorsRequest",
    "QueryTransactionValidatorsResponse",
    "UnstakeStatusDetail",
    "ValidatorUnstakeStatus",
    "GetUnstakingStatusRequest",
    "GetUnstakingStatusResponse",
    "StakingStatus",
    "ValidatorStakingInfo",
    "GetStakingStatusRequest",
    "GetStakingStatusResponse",
    "PreviewUnstakeRequest",
    "PreviewUnstakeResponse"
]