<?php

namespace GriffinForms\Includes\Notifications;

interface NotificationEventInterface
{
    /**
     * Unique slug for this event category, e.g. 'form_submission'.
     */
    public function getEventId(): string;

    /**
     * Human-readable label shown as the tab title, e.g. 'Form Submission'.
     */
    public function getLabel(): string;

    /**
     * Ordered map of sub-event slugs to labels.
     * e.g. ['initial_submission' => 'Initial Submission', 'submission_edit' => 'Submission Edit']
     *
     * @return array<string, string>
     */
    public function getSubEvents(): array;
}
