import { ConfigurationSource } from './ConfigurationSource';
import { StoryActionRule } from './StoryActionRule';
import { EventType } from './EventType';
import { ActionType } from './ActionType';
import { WaitType } from './WaitType';
import { ServiceProviderType } from './ServiceProviderType';
import { EnabledForType } from './EnabledForType';
import { ScheduleWindow } from './ScheduleWindow';
import { GroupingOperatorType } from './GroupingOperatorType';
export declare class StoryAction {
    constructor();
    /** Action key, also used in aid parameter tracking
     * @pattern ^[A-Za-z0-9-_]{1,30}$
     */
    key: string;
    /** Action friendly name */
    name: string;
    /** Action triggering event */
    eventType: EventType;
    /** Action conditional trigger data (for certain events with certain data, usually a key)
     * @nullable
    */
    eventData?: string;
    /** Action to fire */
    actionType: ActionType;
    /** Wait/delay after event?
     @default None
    */
    wait: WaitType;
    /** The units to delay before firing when WaitType is not None */
    waitValue: number;
    /** Service provider for this action */
    serviceProvider: ServiceProviderType;
    /** The model that holds the configuration */
    configurationSource: ConfigurationSource;
    /** Action parameters. These vary by action and provider.  */
    parameters: {
        [index: string]: number | string | boolean | null;
    };
    /** Should this fire each time the event is triggered?
     @default false
    */
    fireMultiple: boolean;
    /** Enabled */
    enabled: boolean;
    /** Enabled for new only or ALL experiences */
    enabledFor: EnabledForType;
    /** Should we be able to fire this action from the experience grid? */
    onDemand: boolean;
    /** If this is the first email that delivers the XID*/
    isDeliveryAction: boolean;
    /** Should we record this action results in analytics? Makes queries slower. */
    visibleInReport: boolean;
    /** Rule grouping method (And vs Or) */
    groupingOperator: GroupingOperatorType;
    /** A list of rules that have to be satisfied before this action will fire. */
    rules: Array<StoryActionRule>;
    /** The time window this action is safe to fire within
     * @nullable */
    executionWindow?: ScheduleWindow | undefined;
    /** Configuration Modifier Script
     * @nullable */
    configurationModifier?: string | undefined;
    /** Response Modifier Script
     * @nullable */
    responseModifier?: string | undefined;
}
