import * as core from "@terrascript/core";
export interface QuietTimeArgs extends core.SchemaArgs {
    end?: string | core.StringOut;
    start?: string | core.StringOut;
}
export declare class QuietTime extends core.Schema<QuietTimeArgs> {
    end?: string | core.StringOut;
    start?: string | core.StringOut;
}
export interface CampaignHookArgs extends core.SchemaArgs {
    lambdaFunctionName?: string | core.StringOut;
    mode?: string | core.StringOut;
    webUrl?: string | core.StringOut;
}
export declare class CampaignHook extends core.Schema<CampaignHookArgs> {
    lambdaFunctionName?: string | core.StringOut;
    mode?: string | core.StringOut;
    webUrl?: string | core.StringOut;
}
export interface LimitsArgs extends core.SchemaArgs {
    daily?: number | core.NumberOut;
    maximumDuration?: number | core.NumberOut;
    messagesPerSecond?: number | core.NumberOut;
    total?: number | core.NumberOut;
}
export declare class Limits extends core.Schema<LimitsArgs> {
    daily?: number | core.NumberOut;
    maximumDuration?: number | core.NumberOut;
    messagesPerSecond?: number | core.NumberOut;
    total?: number | core.NumberOut;
}
export interface AppArgs extends core.ResourceArgs {
    /**
     * (Optional) Specifies settings for invoking an AWS Lambda function that customizes a segment for a ca
     * mpaign
     */
    campaignHook?: CampaignHook;
    /**
     * (Optional) The default campaign limits for the app. These limits apply to each campaign for the app,
     * unless the campaign overrides the default with limits of its own
     */
    limits?: Limits;
    /**
     * (Optional) The application name. By default generated by Terraform
     */
    name?: string | core.StringOut;
    /**
     * (Optional) The name of the Pinpoint application. Conflicts with `name`
     */
    namePrefix?: string | core.StringOut;
    /**
     * (Optional) The default quiet time for the app. Each campaign for this app sends no messages during t
     * his time unless the campaign overrides the default with a quiet time of its own
     */
    quietTime?: QuietTime;
    /**
     * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati
     * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati
     * on-block) present, tags with matching keys will overwrite those defined at the provider-level.
     */
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    /**
     * A map of tags assigned to the resource, including those inherited from the provider [`default_tags`
     * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-
     * configuration-block).
     */
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class App extends core.Resource<AppArgs> {
    /**
     * The Application ID of the Pinpoint App.
     */
    applicationId: string | core.StringOut;
    /**
     * Amazon Resource Name (ARN) of the PinPoint Application
     */
    arn: string | core.StringOut;
    /**
     * (Optional) Specifies settings for invoking an AWS Lambda function that customizes a segment for a ca
     * mpaign
     */
    campaignHook?: CampaignHook;
    id: string | core.StringOut;
    /**
     * (Optional) The default campaign limits for the app. These limits apply to each campaign for the app,
     * unless the campaign overrides the default with limits of its own
     */
    limits?: Limits;
    /**
     * (Optional) The application name. By default generated by Terraform
     */
    name?: string | core.StringOut;
    /**
     * (Optional) The name of the Pinpoint application. Conflicts with `name`
     */
    namePrefix?: string | core.StringOut;
    /**
     * (Optional) The default quiet time for the app. Each campaign for this app sends no messages during t
     * his time unless the campaign overrides the default with a quiet time of its own
     */
    quietTime?: QuietTime;
    /**
     * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati
     * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati
     * on-block) present, tags with matching keys will overwrite those defined at the provider-level.
     */
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    /**
     * A map of tags assigned to the resource, including those inherited from the provider [`default_tags`
     * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-
     * configuration-block).
     */
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    constructor(name: string, args?: AppArgs);
    getNamespace(): string;
}
//# sourceMappingURL=app.d.ts.map