interface IPoolStoreGov {
    /* ================= EVENTS ================= */

    event EmergencyReported(address indexed reporter);
    event EmergencyResolved(address indexed resolver);

    event WeightFeederChanged(
        address indexed operator,
        address indexed oldFeeder,
        address indexed newFeeder
    );

    event PoolAdded(
        address indexed operator,
        uint256 indexed pid,
        string name,
        address token,
        uint256 weight
    );
    event PoolWeightChanged(
        address indexed operator,
        uint256 indexed pid,
        uint256 from,
        uint256 to
    );
    event PoolNameChanged(
        address indexed operator,
        uint256 indexed pid,
        string from,
        string to
    );

    /* ================= TXNS ================= */

    // emergency
    function reportEmergency() external;

    function resolveEmergency() external;

    // feeder
    function setWeightFeeder(address _newFeeder) external;

    // pool setting
    function addPool(
        string memory _name,
        IERC20 _token,
        uint256 _weight
    ) external;

    function setPool(uint256 _pid, uint256 _weight) external;

    function setPool(uint256 _pid, string memory _name) external;
}
function setWeightFeeder(address _newFeeder) external;

// feeder