import type { Signer, SignerConfig } from "@aws-sdk/rds-signer"; import type middy from "@middy/core"; import type { Options as MiddyOptions } from "@middy/util"; import type { Context as LambdaContext } from "aws-lambda"; export type RdsSignerOptions = Omit< MiddyOptions, "fetchData" > & { fetchData?: { [key: string]: SignerConfig; }; }; export type Context = TOptions extends { setToContext: true } ? TOptions extends { fetchData: infer TFetchData } ? LambdaContext & { [Key in keyof TFetchData]: string; } : LambdaContext : LambdaContext; export type Internal = TOptions extends RdsSignerOptions ? TOptions extends { fetchData: infer TFetchData } ? { [Key in keyof TFetchData]: string; } : {} : {}; declare function rdsSigner( options?: TOptions, ): middy.MiddlewareObj< unknown, any, Error, Context, Internal >; export default rdsSigner;