import middy from '@middy/core' import { Options as MiddyOptions } from '@middy/util' import { Context as LambdaContext } from 'aws-lambda' import { SecretsManagerClient, SecretsManagerClientConfig } from '@aws-sdk/client-secrets-manager' export type SecretType = string & { __returnType?: T } export declare function secret (path: string): SecretType interface SecretsManagerOptions extends Omit, 'fetchData'> { fetchData?: { [key: string]: string | SecretType } } export type Context = TOptions extends { setToContext: true } ? TOptions extends { fetchData: infer TFetchData } ? LambdaContext & { [Key in keyof TFetchData]: TFetchData[Key] extends SecretType ? T : unknown } : never : LambdaContext export type Internal = TOptions extends SecretsManagerOptions ? TOptions extends { fetchData: infer TFetchData } ? { [Key in keyof TFetchData]: TFetchData[Key] extends SecretType ? T : unknown } : {} : {} declare function secretsManager ( options?: TOptions ): middy.MiddlewareObj, Internal> export default secretsManager