import * as core from "@terrascript/core";
export interface RunConfigArgs extends core.SchemaArgs {
    activeTracing?: boolean | core.BooleanOut;
    environmentVariables?: core.Map<string, string> | core.MapOut<core.StringOut>;
    memoryInMb?: number | core.NumberOut;
    timeoutInSeconds?: number | core.NumberOut;
}
export declare class RunConfig extends core.Schema<RunConfigArgs> {
    activeTracing?: boolean | core.BooleanOut;
    environmentVariables?: core.Map<string, string> | core.MapOut<core.StringOut>;
    memoryInMb?: number | core.NumberOut;
    timeoutInSeconds?: number | core.NumberOut;
}
export interface VpcConfigArgs extends core.SchemaArgs {
    securityGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnetIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    vpcId: string | core.StringOut;
}
export declare class VpcConfig extends core.Schema<VpcConfigArgs> {
    securityGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnetIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    vpcId: string | core.StringOut;
}
export interface ScheduleArgs extends core.SchemaArgs {
    durationInSeconds?: number | core.NumberOut;
    expression: string | core.StringOut;
}
export declare class Schedule extends core.Schema<ScheduleArgs> {
    durationInSeconds?: number | core.NumberOut;
    expression: string | core.StringOut;
}
export interface S3EncryptionArgs extends core.SchemaArgs {
    encryptionMode?: string | core.StringOut;
    kmsKeyArn?: string | core.StringOut;
}
export declare class S3Encryption extends core.Schema<S3EncryptionArgs> {
    encryptionMode?: string | core.StringOut;
    kmsKeyArn?: string | core.StringOut;
}
export interface ArtifactConfigArgs extends core.SchemaArgs {
    s3Encryption?: S3Encryption;
}
export declare class ArtifactConfig extends core.Schema<ArtifactConfigArgs> {
    s3Encryption?: S3Encryption;
}
export interface TimelineArgs extends core.SchemaArgs {
    created: string | core.StringOut;
    lastModified: string | core.StringOut;
    lastStarted: string | core.StringOut;
    lastStopped: string | core.StringOut;
}
export declare class Timeline extends core.Schema<TimelineArgs> {
    created: string | core.StringOut;
    lastModified: string | core.StringOut;
    lastStarted: string | core.StringOut;
    lastStopped: string | core.StringOut;
}
export interface CanaryArgs extends core.ResourceArgs {
    artifactConfig?: ArtifactConfig;
    artifactS3Location: string | core.StringOut;
    deleteLambda?: boolean | core.BooleanOut;
    executionRoleArn: string | core.StringOut;
    failureRetentionPeriod?: number | core.NumberOut;
    handler: string | core.StringOut;
    name: string | core.StringOut;
    runConfig?: RunConfig;
    runtimeVersion: string | core.StringOut;
    s3Bucket?: string | core.StringOut;
    s3Key?: string | core.StringOut;
    s3Version?: string | core.StringOut;
    schedule: Schedule;
    startCanary?: boolean | core.BooleanOut;
    successRetentionPeriod?: number | core.NumberOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    vpcConfig?: VpcConfig;
    zipFile?: string | core.StringOut;
}
export declare class Canary extends core.Resource<CanaryArgs> {
    arn: string | core.StringOut;
    artifactConfig?: ArtifactConfig;
    artifactS3Location: string | core.StringOut;
    deleteLambda?: boolean | core.BooleanOut;
    engineArn: string | core.StringOut;
    executionRoleArn: string | core.StringOut;
    failureRetentionPeriod?: number | core.NumberOut;
    handler: string | core.StringOut;
    id: string | core.StringOut;
    name: string | core.StringOut;
    runConfig?: RunConfig;
    runtimeVersion: string | core.StringOut;
    s3Bucket?: string | core.StringOut;
    s3Key?: string | core.StringOut;
    s3Version?: string | core.StringOut;
    schedule: Schedule;
    sourceLocationArn: string | core.StringOut;
    startCanary?: boolean | core.BooleanOut;
    status: string | core.StringOut;
    successRetentionPeriod?: number | core.NumberOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    timeline: core.Array<Timeline> | core.ArrayOut<Timeline>;
    vpcConfig?: VpcConfig;
    zipFile?: string | core.StringOut;
    constructor(name: string, args?: CanaryArgs);
    getNamespace(): string;
}
//# sourceMappingURL=canary.d.ts.map