// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; /** * @title SOMA Seizable Position Contract. * @author SOMA.finance. * @notice Interface of the {SeizablePosition} contract. */ interface ISeizablePosition { /** * @notice Emitted after an nft is seized. * @param operator The address of the operator. * @param from The address that has had tokens seized from. * @param to The seize to address that receives seized tokens. * @param tokenId The tokenId of the token being seized. */ event Seized(address indexed operator, address indexed from, address indexed to, uint256 tokenId); /** * @notice Seizes tokens from an account. * @param tokenHolder The account to seize the nft from. * @param tokenId The tokenId of the token being seized. * @custom:emits Seized * @custom:requirement The message sender must have the GLOBAL_SEIZE_ROLE or LOCAL_SEIZE_ROLE. */ function seize(address tokenHolder, uint256 tokenId) external; }