import { ResourceBase } from "../../resource";
import { Value, List, MapOf } from "../../data-types";
export declare class EventDimensions {
    Metrics?: MapOf<any>;
    EventType?: SetDimension;
    Attributes?: MapOf<any>;
    constructor(properties: EventDimensions);
}
export declare class Message {
    Body?: Value<string>;
    ImageSmallIconUrl?: Value<string>;
    JsonBody?: Value<string>;
    MediaUrl?: Value<string>;
    SilentPush?: Value<boolean>;
    Url?: Value<string>;
    RawContent?: Value<string>;
    ImageUrl?: Value<string>;
    TimeToLive?: Value<number>;
    Action?: Value<string>;
    Title?: Value<string>;
    ImageIconUrl?: Value<string>;
    constructor(properties: Message);
}
export declare class CampaignEmailMessage {
    FromAddress?: Value<string>;
    HtmlBody?: Value<string>;
    Title?: Value<string>;
    Body?: Value<string>;
    constructor(properties: CampaignEmailMessage);
}
export declare class CampaignSmsMessage {
    SenderId?: Value<string>;
    Body?: Value<string>;
    MessageType?: Value<string>;
    constructor(properties: CampaignSmsMessage);
}
export declare class SetDimension {
    DimensionType?: Value<string>;
    Values?: List<Value<string>>;
    constructor(properties: SetDimension);
}
export declare class WriteTreatmentResource {
    TreatmentDescription?: Value<string>;
    MessageConfiguration?: MessageConfiguration;
    Schedule?: Schedule;
    SizePercent?: Value<number>;
    TreatmentName?: Value<string>;
    constructor(properties: WriteTreatmentResource);
}
export declare class AttributeDimension {
    AttributeType?: Value<string>;
    Values?: List<Value<string>>;
    constructor(properties: AttributeDimension);
}
export declare class MetricDimension {
    ComparisonOperator?: Value<string>;
    Value?: Value<number>;
    constructor(properties: MetricDimension);
}
export declare class MessageConfiguration {
    APNSMessage?: Message;
    BaiduMessage?: Message;
    DefaultMessage?: Message;
    EmailMessage?: CampaignEmailMessage;
    GCMMessage?: Message;
    SMSMessage?: CampaignSmsMessage;
    ADMMessage?: Message;
    constructor(properties: MessageConfiguration);
}
export declare class CampaignHook {
    Mode?: Value<string>;
    WebUrl?: Value<string>;
    LambdaFunctionName?: Value<string>;
    constructor(properties: CampaignHook);
}
export declare class QuietTime {
    Start: Value<string>;
    End: Value<string>;
    constructor(properties: QuietTime);
}
export declare class CampaignEventFilter {
    FilterType?: Value<string>;
    Dimensions?: EventDimensions;
    constructor(properties: CampaignEventFilter);
}
export declare class Schedule {
    TimeZone?: Value<string>;
    QuietTime?: QuietTime;
    EndTime?: Value<string>;
    StartTime?: Value<string>;
    Frequency?: Value<string>;
    EventFilter?: CampaignEventFilter;
    IsLocalTime?: Value<boolean>;
    constructor(properties: Schedule);
}
export declare class Limits {
    Daily?: Value<number>;
    MaximumDuration?: Value<number>;
    Total?: Value<number>;
    MessagesPerSecond?: Value<number>;
    constructor(properties: Limits);
}
export interface CampaignProperties {
    AdditionalTreatments?: List<WriteTreatmentResource>;
    TreatmentName?: Value<string>;
    TreatmentDescription?: Value<string>;
    SegmentVersion?: Value<number>;
    ApplicationId: Value<string>;
    Name: Value<string>;
    SegmentId: Value<string>;
    MessageConfiguration: MessageConfiguration;
    CampaignHook?: CampaignHook;
    HoldoutPercent?: Value<number>;
    Schedule: Schedule;
    Limits?: Limits;
    IsPaused?: Value<boolean>;
    Tags?: MapOf<any>;
    Description?: Value<string>;
}
export default class Inner_Campaign extends ResourceBase<CampaignProperties> {
    static EventDimensions: typeof EventDimensions;
    static Message: typeof Message;
    static CampaignEmailMessage: typeof CampaignEmailMessage;
    static CampaignSmsMessage: typeof CampaignSmsMessage;
    static SetDimension: typeof SetDimension;
    static WriteTreatmentResource: typeof WriteTreatmentResource;
    static AttributeDimension: typeof AttributeDimension;
    static MetricDimension: typeof MetricDimension;
    static MessageConfiguration: typeof MessageConfiguration;
    static CampaignHook: typeof CampaignHook;
    static QuietTime: typeof QuietTime;
    static CampaignEventFilter: typeof CampaignEventFilter;
    static Schedule: typeof Schedule;
    static Limits: typeof Limits;
    constructor(properties: CampaignProperties);
}
