import { BaseSchedule } from './Common/Schedule';
import { AdaptableObject } from './Common/AdaptableObject';
import { BaseState } from './BaseState';
/**
 * Internal State used by AdapTable for managing the ipushpull plugin
 */
export interface IPushPullState extends BaseState {
    IsIPushPullRunning?: boolean;
    IPushPullDomainsPages?: IPushPullDomain[];
    IPushPullLoginErrorMessage?: string;
    CurrentLiveIPushPullReport?: IPushPullReport;
    CurrentIPushpullUsername?: string;
    CurrentIPushpullPassword?: string;
    IPushPullCurrentReportName?: string;
    IPushPullCurrentFolder?: string;
    IPushPullCurrentPage?: string;
    IPushPullCurrentAvailablePages?: string[];
}
/**
 * Internal object that maps an IPushPull Domain object
 */
export interface IPushPullDomain {
    /**
     * the Name of the Domain / Folder
     */
    Name: string;
    /**
     * the Id of the Folder
     */
    FolderId: number;
    /**
     * The names of the pages within the (Folder)
     */
    Pages: string[];
}
/**
 * An ipushpull report
 */
export interface IPushPullReport extends AdaptableObject {
    /**
     * Name of the Report
     */
    ReportName: string;
    /**
     * ipushpull Folder which contains the Page
     */
    Folder: string;
    /**
     * ipushpull Page which will contain the data
     */
    Page: string;
}
/**
 * Defines an ipushpull Schedule
 */
export interface IPushPullSchedule extends BaseSchedule {
    /**
     * The report being exported to Excel (via ipushpull)
     */
    IPushPullReport: IPushPullReport;
    /**
     * How data is sent: 'Snapshot' or 'Live Data'
     */
    Transmission: 'Snapshot' | 'Live Data';
}
