// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

interface IStorageHistory {
    struct DeploymentSnapshot {
        uint48 deployedAt;
        uint104 amountIn;
        uint104 amountOut;
    }

    error NotCreator();
    error NotDeployer();
    error AlreadyExecuted();
    error BridgeOutImpossible();

    function isTransactionExecuted(uint256 session) external view returns (bool);
    function deploymentSnapshot() external view returns (DeploymentSnapshot memory);
    function bridgeImbalance() external view returns (uint256);

    function trySetTransactionExecuted(uint256 session) external;
    function tryIncreaseBridgeOut(uint256 amount) external;
    function increaseBridgeIn(uint256 amount) external;
    function setOwner(address newOwner) external;
}
