import { BaseState } from './BaseState';
import { IPushPullSchedule } from './IPushPullState';
import { OpenFinSchedule } from './OpenFinState';
import { AdaptableMessageType, ReportSchedule } from '../types';
import { BaseSchedule } from './Common/Schedule';
/**
 * Adaptable State Section for the Schedule Module
 *
 */
export interface ScheduleState extends BaseState {
    /**
     * Schedules connected to Reports (created in the Export function)
     */
    ReportSchedules?: ReportSchedule[];
    /**
     * Schedules connected to Reminders - Alerts that fire at set times
     */
    Reminders?: ReminderSchedule[];
    /**
     * Schedules connected to ipushpull Reports - available if ipushpull plugin is running
     */
    IPushPullSchedules?: IPushPullSchedule[];
    /**
     * Schedules connected to OpenFin exports - available if OpenFin plugin is running
     */
    OpenFinSchedules?: OpenFinSchedule[];
}
/**
 * Schedules a Reminder to appear at a given point in time
 */
export interface ReminderSchedule extends BaseSchedule {
    /**
     * Reminder header text
     */
    Header: string;
    /**
     * Reminder body text
     */
    Message: string;
    /**
     * Type of Message - 'Success', 'Info', 'Warning' or 'Error'
     */
    MessageType: AdaptableMessageType;
    /**
     * Displays Reminder as a Toast Notification
     */
    DisplayNotification: boolean;
    /**
     * Shows Reminder as System Status Message
     */
    DisplaySystemStatusMessage?: boolean;
}
