import { ResourceBase, ResourceTag as Inner_ResourceTag } from "../../resource";
import { Value, List, MapOf } from "../../data-types";
export declare class Environment {
    Variables?: MapOf<Value<string>>;
    constructor(properties: Environment);
}
export declare class TracingConfig {
    Mode?: Value<string>;
    constructor(properties: TracingConfig);
}
export declare class VpcConfig {
    SecurityGroupIds: List<Value<string>>;
    SubnetIds: List<Value<string>>;
    constructor(properties: VpcConfig);
}
export declare class DeadLetterConfig {
    TargetArn?: Value<string>;
    constructor(properties: DeadLetterConfig);
}
export declare class Code {
    S3Bucket?: Value<string>;
    S3Key?: Value<string>;
    S3ObjectVersion?: Value<string>;
    ZipFile?: Value<string>;
    constructor(properties: Code);
}
export interface FunctionProperties {
    Timeout?: Value<number>;
    MemorySize?: Value<number>;
    Layers?: List<Value<string>>;
    FunctionName?: Value<string>;
    TracingConfig?: TracingConfig;
    Handler: Value<string>;
    VpcConfig?: VpcConfig;
    DeadLetterConfig?: DeadLetterConfig;
    Code: Code;
    KmsKeyArn?: Value<string>;
    Environment?: Environment;
    Role: Value<string>;
    Runtime: Value<string>;
    Tags?: List<Inner_ResourceTag>;
    ReservedConcurrentExecutions?: Value<number>;
    Description?: Value<string>;
}
export default class Inner_Function extends ResourceBase<FunctionProperties> {
    static Environment: typeof Environment;
    static TracingConfig: typeof TracingConfig;
    static VpcConfig: typeof VpcConfig;
    static DeadLetterConfig: typeof DeadLetterConfig;
    static Code: typeof Code;
    constructor(properties: FunctionProperties);
}
