import { AWS } from "./AWS"; export declare namespace Lambda { class Func extends AWS.Resource { arn: string; memorySize: number; runtime: string; packageType: string; private _versions; private _aliases; private _deploymentPackage; layers: Func.Layer[]; private _invocations; private _executionDuration; private _memoryConsumption; private _concurrency; private _averageCost; static new(session: AWS.Session, id?: string, arn?: string, memorySize?: number, runtime?: string, packageType?: string): Func; private constructor(); protected updateChildren(): Promise; hasArn(): boolean; hasRuntime(): boolean; hasArmRuntime(): boolean; hasPackageType(): boolean; hasMemorySize(): boolean; hasLayers(): boolean; hasBinaries(): Promise; private getVersions; hasVersions(): Promise; versions(): Promise; latestVersion(): Promise; private getAliases; hasAliases(): Promise; hasAliasPointingToLatestVersionOnly(): Promise; aliases(): Promise; private getDeploymentPackage; deploymentPackage(): Promise; invocations(intervalInDays: number): Promise; executionDuration(intervalInDays: number): Promise; private getMemoryConsumption; memoryConsumption(intervalInDays: number): Promise; concurrency(intervalInDays: number): Promise; averageCost(intervalInDays: number): Promise; } class DeploymentPackage extends AWS.Resource { id: string; url: string; private _filename; private _extracted; private _parent; private _uuid; static new(session: AWS.Session, parent: Func | Func.Layer, id: string, url?: string): DeploymentPackage; private constructor(); protected updateChildren(): Promise; get parent(): Func | Func.Layer; hasUrl(): boolean; filename(): Promise; contents(): Promise; hasBinaries(): Promise; } namespace DeploymentPackage { abstract class Entry { name: string; size: number; attributes: number; constructor(name: string, size: number, attributes: number); isDirectory(): this is Directory; isFile(): this is File; } class File extends Entry { } class Directory extends Entry { } const type = "Lambda.DeploymentPackage"; } namespace Func { const type = "Lambda.Func"; class Layer extends AWS.Resource { arn: string; private _deploymentPackage; private _func; static new(session: AWS.Session, func: Lambda.Func, arn?: string): Layer; private constructor(); get func(): Func; protected updateChildren(): Promise; hasArn(): boolean; private getDeploymentPackage; deploymentPackage(): Promise; } namespace Layer { const type = "Lambda.Func.Layer"; } class Alias extends AWS.Resource { arn: string; version1: string; version2: string; weight: number; private _func; static new(session: AWS.Session, func: Func, name?: string, arn?: string, version1?: string, version2?: string, weight?: number): Alias; private constructor(); protected updateChildren(): Promise; get func(): Func; hasName(): boolean; hasArn(): boolean; hasVersion1(): boolean; hasVersion2(): boolean; hasWeight(): boolean; pointsToLatestVersionOnly(): Promise; } namespace Alias { const type = "Lambda.Func.Alias"; } class Metric extends AWS.Metric { } namespace Metric { function create(session: AWS.Session, MetricClass: AWS.Metric.Class, resource: AWS.Resource, metric: string, statistic: string, period: number, days: number): Promise; class ExecutionDuration extends Metric { static new(session: AWS.Session, resource: AWS.Resource, days: number): Promise; } class Concurrency extends Metric { static new(session: AWS.Session, resource: AWS.Resource, days: number): Promise; } class Invocations extends Metric { static new(session: AWS.Session, resource: AWS.Resource, days: number): Promise; } class MemoryConsumption extends Metric { } } } class Funcs extends Array { private static describeFunctions; static fetch(session: AWS.Session): Promise; } }