import { AWS } from "./AWS"; import { VPC } from "./VPC"; import { CUR } from "./CUR"; export declare namespace Elasticache { class Cluster extends AWS.Resource { engine: string; version: string; status: string; private _az; replicationGroupId: string; nodeCount: number; nodeType: string; private _currItems; private _currVolatileItems; private _evictions; private _reclaimed; static new(session: AWS.Session, id?: string, engine?: string, version?: string, status?: string, az?: VPC.AvailabilityZone, replicationGroupId?: string, nodeCount?: number, nodeType?: string, tags?: AWS.Tag[]): Cluster; private constructor(); nodes(): Promise; get az(): VPC.AvailabilityZone | undefined; protected updateChildren(): Promise; hasEngine(): boolean; hasVersion(): boolean; hasStatus(): boolean; hasReplicationGroupId(): boolean; hasNodeType(): boolean; hasNodeCount(): boolean; currItems(days: number): Promise; currVolatileItems(days: number): Promise; evictions(days: number): Promise; reclaimed(days: number): Promise; } namespace Cluster { const type = "Elasticache.Cluster"; class Node extends AWS.Resource { status: string; private _az; sourceNodeId: string; private _cluster; static isTypeOf(resource: AWS.Resource): resource is Node; static new(session: AWS.Session, cluster: Cluster, id?: string, status?: string, az?: VPC.AvailabilityZone, sourceNodeId?: string): Node; private constructor(); protected updatePreferredParent(parents: AWS.Resource[]): AWS.Resource | undefined; get az(): VPC.AvailabilityZone | undefined; protected updateChildren(): Promise; get cluster(): Cluster; hasStatus(): boolean; hasSourceNodeId(): boolean; } namespace Node { const type = "Elasticache.Cluster.Node"; } 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 CurrItems extends Metric { static new(session: AWS.Session, resource: AWS.Resource, days: number): Promise; } class CurrVolatileItems extends Metric { static new(session: AWS.Session, resource: AWS.Resource, days: number): Promise; } class Evictions extends Metric { static new(session: AWS.Session, resource: AWS.Resource, days: number): Promise; } class Reclaimed extends Metric { static new(session: AWS.Session, resource: AWS.Resource, days: number): Promise; } } } class Clusters extends Array { private static describeClusters; static fetch(session: AWS.Session): Promise; static costs(account: string, curSession: AWS.Session, catalog: string, database: string, table: string, outputLocation: string, year: number): Promise; } }