LayerCover

IPayoutManagerWithBreakdown

Interface reference for IPayoutManagerWithBreakdown.

Interface

// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.20;

import {Types} from "../libraries/helpers/Types.sol";

/**
 * @title IPayoutManagerWithBreakdown
 * @notice Extended payout interface with claimant-side source attribution.
 */
interface IPayoutManagerWithBreakdown {
    /**
     * @notice Executes claim payout and returns claimant-side funding source breakdown.
     * @dev `privateReinsurancePaid + backstopReinsurancePaid + treasuryReinsurancePaid`
     *      is capped to claimant-side payout only (fees excluded).
     */
    function executePayoutWithBreakdown(Types.PayoutData calldata p)
        external
        returns (
            uint256 underwriterPaid,
            uint256 reinsurancePaid,
            uint256 claimantDeficit,
            uint256 privateReinsurancePaid,
            uint256 backstopReinsurancePaid,
            uint256 treasuryReinsurancePaid
        );

    /**
     * @notice Executes payment for previously recorded claim debt and returns source attribution.
     * @dev Attribution is claimant-side and capped to `paid`.
     */
    function executeDebtPayoutWithBreakdown(address claimant, uint256 amount)
        external
        returns (
            uint256 paid,
            uint256 backstopPaid,
            uint256 treasuryPaid,
            uint256 unattributedPaid
        );
}