import * as constructs from "constructs"; type ReferenceToResource = (scope: constructs.Construct, id: string, reference: string) => T; interface Props { /** * The nonce can be used to force the stack to update to check * for a new value. * * @default Date.now().toString() */ nonce?: string; parameterName: string; resource: T; resourceToReference(resource: T): string; referenceToResource: ReferenceToResource; /** * List of regions that can retrieve this resource from an SSM Parameter. */ regions: string[]; } /** * Register SSM Parameters in other regions storing a reference to * a resource, which can then be resolved in the other region by * reading from the parameter. * * Storing the SSM Parameters in the other regions speeds up the * resolving of parameters, since we can use CloudFormation SSM * Parameters instead of custom resources. * * If the resource is in the same region, the resource will be returned * like normally in CDK, causing an export/import if cross-stack. */ export declare class SsmParameterBackedResource extends constructs.Construct { private readonly nonce; private readonly parameterName; private readonly resource; private readonly referenceToResource; private readonly regions; constructor(scope: constructs.Construct, id: string, props: Props); /** * Get the resource by resolving the value from SSM Parameter Store * in case we are cross-region or cross-stage. */ get(scope: constructs.Construct, id: string): T; } export {};