interface AdministrateeInterface {
    /**
     * @notice Initiates the shutdown process, in case of an emergency.
     */
    function emergencyShutdown() external;

    /**
     * @notice A core contract method called independently or as a part of other financial contract transactions.
     * @dev It pays fees and moves money between margin accounts to make sure they reflect the NAV of the contract.
     */
    function remargin() external;

    /**
     * @notice Gets the current profit from corruption for this contract in terms of the collateral currency.
     * @dev This is equivalent to the collateral pool available from which to pay fees. Therefore, derived contracts are
     * expected to implement this so that pay-fee methods can correctly compute the owed fees as a % of PfC.
     * @return pfc value for equal to the current profit from corruption denominated in collateral currency.
     */
    function pfc() external view returns (FixedPoint.Unsigned memory);
}
/**
 * @title Interface that all financial contracts expose to the admin.
 */
function pfc() external view returns (FixedPoint.Unsigned memory);

/**
 * @notice Gets the current profit from corruption for this contract in terms of the collateral currency.
 * @dev This is equivalent to the collateral pool available from which to pay fees. Therefore, derived contracts are
 * expected to implement this so that pay-fee methods can correctly compute the owed fees as a % of PfC.
 * @return pfc value for equal to the current profit from corruption denominated in collateral currency.
 */