<?php
namespace SabaiApps\Directories\Component\Notification\Event;

interface IEvent {

	/**
	 * @return mixed
	 */
	public function notificationEventInfo( $key = null );
	/**
	 * @return bool
	 */
	public function notificationEventIsEnabled();
	/**
	 * @return array
	 */
	public function notificationEventSettingsForm( array $settings, array $parents = array() );
	/**
	 * @return array
	 */
	public function notificationEventMessageMeta( array $settings );
	/**
	 * @return Iterable
	 */
	public function notificationEventMessages( array $settings, array $params );
	/**
	 * @return array|null
	 */
	public function notificationEventDefaultNotificationData();
	/**
	 * @return array
	 */
	public function notificationEventParamSettingsForm( array $settings, array $parents = array() );
	/**
	 * @return array
	 */
	public function notificationEventParams( array $settings, array $paramSettings );
}
