import * as core from "@terrascript/core";
export interface ImageConfigArgs extends core.SchemaArgs {
    command?: core.Array<string> | core.ArrayOut<core.StringOut>;
    entryPoint?: core.Array<string> | core.ArrayOut<core.StringOut>;
    workingDirectory?: string | core.StringOut;
}
export declare class ImageConfig extends core.Schema<ImageConfigArgs> {
    command?: core.Array<string> | core.ArrayOut<core.StringOut>;
    entryPoint?: core.Array<string> | core.ArrayOut<core.StringOut>;
    workingDirectory?: string | core.StringOut;
}
export interface DeadLetterConfigArgs extends core.SchemaArgs {
    targetArn: string | core.StringOut;
}
export declare class DeadLetterConfig extends core.Schema<DeadLetterConfigArgs> {
    targetArn: string | core.StringOut;
}
export interface EnvironmentArgs extends core.SchemaArgs {
    variables?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class Environment extends core.Schema<EnvironmentArgs> {
    variables?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
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 TracingConfigArgs extends core.SchemaArgs {
    mode: string | core.StringOut;
}
export declare class TracingConfig extends core.Schema<TracingConfigArgs> {
    mode: string | core.StringOut;
}
export interface EphemeralStorageArgs extends core.SchemaArgs {
    size?: number | core.NumberOut;
}
export declare class EphemeralStorage extends core.Schema<EphemeralStorageArgs> {
    size?: number | core.NumberOut;
}
export interface FileSystemConfigArgs extends core.SchemaArgs {
    arn: string | core.StringOut;
    localMountPath: string | core.StringOut;
}
export declare class FileSystemConfig extends core.Schema<FileSystemConfigArgs> {
    arn: string | core.StringOut;
    localMountPath: string | core.StringOut;
}
export interface FunctionArgs extends core.ResourceArgs {
    architectures?: core.Array<string> | core.ArrayOut<core.StringOut>;
    codeSigningConfigArn?: string | core.StringOut;
    deadLetterConfig?: DeadLetterConfig;
    description?: string | core.StringOut;
    environment?: Environment;
    ephemeralStorage?: EphemeralStorage;
    fileSystemConfig?: FileSystemConfig;
    filename?: string | core.StringOut;
    functionName: string | core.StringOut;
    handler?: string | core.StringOut;
    imageConfig?: ImageConfig;
    imageUri?: string | core.StringOut;
    kmsKeyArn?: string | core.StringOut;
    layers?: core.Array<string> | core.ArrayOut<core.StringOut>;
    memorySize?: number | core.NumberOut;
    packageType?: string | core.StringOut;
    publish?: boolean | core.BooleanOut;
    reservedConcurrentExecutions?: number | core.NumberOut;
    role: string | core.StringOut;
    runtime?: string | core.StringOut;
    s3Bucket?: string | core.StringOut;
    s3Key?: string | core.StringOut;
    s3ObjectVersion?: string | core.StringOut;
    sourceCodeHash?: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    timeout?: number | core.NumberOut;
    tracingConfig?: TracingConfig;
    vpcConfig?: VpcConfig;
}
export declare class Function extends core.Resource<FunctionArgs> {
    architectures?: core.Array<string> | core.ArrayOut<core.StringOut>;
    arn: string | core.StringOut;
    codeSigningConfigArn?: string | core.StringOut;
    deadLetterConfig?: DeadLetterConfig;
    description?: string | core.StringOut;
    environment?: Environment;
    ephemeralStorage?: EphemeralStorage;
    fileSystemConfig?: FileSystemConfig;
    filename?: string | core.StringOut;
    functionName: string | core.StringOut;
    handler?: string | core.StringOut;
    id: string | core.StringOut;
    imageConfig?: ImageConfig;
    imageUri?: string | core.StringOut;
    invokeArn: string | core.StringOut;
    kmsKeyArn?: string | core.StringOut;
    lastModified: string | core.StringOut;
    layers?: core.Array<string> | core.ArrayOut<core.StringOut>;
    memorySize?: number | core.NumberOut;
    packageType?: string | core.StringOut;
    publish?: boolean | core.BooleanOut;
    qualifiedArn: string | core.StringOut;
    reservedConcurrentExecutions?: number | core.NumberOut;
    role: string | core.StringOut;
    runtime?: string | core.StringOut;
    s3Bucket?: string | core.StringOut;
    s3Key?: string | core.StringOut;
    s3ObjectVersion?: string | core.StringOut;
    signingJobArn: string | core.StringOut;
    signingProfileVersionArn: string | core.StringOut;
    sourceCodeHash?: string | core.StringOut;
    sourceCodeSize: number | core.NumberOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    timeout?: number | core.NumberOut;
    tracingConfig?: TracingConfig;
    version: string | core.StringOut;
    vpcConfig?: VpcConfig;
    constructor(name: string, args?: FunctionArgs);
    getNamespace(): string;
}
//# sourceMappingURL=function.d.ts.map