// Copyright 2017 - 2026 will Farrell, Luciano Mammino, and Middy contributors. // SPDX-License-Identifier: MIT import type middy from "@middy/core"; import type { Context as LambdaContext } from "aws-lambda"; export type SecretId = string & { __returnType?: T }; export declare function secretsManagerExtensionParam( secretId: string, ): SecretId; export interface SecretsManagerExtensionOptions { fetchData?: { [key: string]: string | SecretId }; disablePrefetch?: boolean; cacheKey?: string; cacheKeyExpiry?: { [key: string]: number }; cacheExpiry?: number; setToContext?: boolean; } export type Context< TOptions extends SecretsManagerExtensionOptions | undefined, > = TOptions extends { setToContext: true } ? TOptions extends { fetchData: infer TFetchData } ? LambdaContext & { [Key in keyof TFetchData]: TFetchData[Key] extends SecretId ? T : unknown; } : never : LambdaContext; export type Internal< TOptions extends SecretsManagerExtensionOptions | undefined, > = TOptions extends SecretsManagerExtensionOptions ? TOptions extends { fetchData: infer TFetchData } ? { [Key in keyof TFetchData]: TFetchData[Key] extends SecretId ? T : unknown; } : {} : {}; declare function secretsManagerExtension< TOptions extends SecretsManagerExtensionOptions, >( options?: TOptions, ): middy.MiddlewareObj< unknown, any, Error, Context, Internal >; export declare function secretsManagerExtensionValidateOptions( options?: Record, ): void; export default secretsManagerExtension;