import { CloudWatchLogsClient, CreateLogGroupCommandInput, DeleteSubscriptionFilterCommandInput, PutSubscriptionFilterCommandInput } from "@aws-sdk/client-cloudwatch-logs";
import { FunctionConfiguration, LambdaClient, Runtime, TagResourceCommandInput, UntagResourceCommandInput, UpdateFunctionConfigurationCommandInput, UpdateFunctionConfigurationRequest } from "@aws-sdk/client-lambda";

//#region src/interfaces.d.ts
/**
 * Configuration comprised by a Lambda Function ARN,
 * its configuration from AWS, its library layer ARN,
 * the changes in logs, tags, and the update request.
 */
interface FunctionConfiguration$1 {
  functionARN: string;
  lambdaConfig: FunctionConfiguration;
  logGroupConfiguration?: LogGroupConfiguration;
  tagConfiguration?: TagConfiguration;
  updateFunctionConfigurationCommandInput?: UpdateFunctionConfigurationCommandInput;
}
interface LogGroupConfiguration {
  createLogGroupCommandInput?: CreateLogGroupCommandInput;
  deleteSubscriptionFilterCommandInput?: DeleteSubscriptionFilterCommandInput;
  logGroupName: string;
  putSubscriptionFilterCommandInput?: PutSubscriptionFilterCommandInput;
}
interface TagConfiguration {
  tagResourceCommandInput?: TagResourceCommandInput;
  untagResourceCommandInput?: UntagResourceCommandInput;
}
//#endregion
//#region src/functions/uninstrument.d.ts
declare const getUninstrumentedFunctionConfigs: (lambdaClient: LambdaClient, cloudWatchLogsClient: CloudWatchLogsClient, functionARNs: string[], forwarderARN: string | undefined) => Promise<FunctionConfiguration$1[]>;
declare const getUninstrumentedFunctionConfig: (lambdaClient: LambdaClient, cloudWatchLogsClient: CloudWatchLogsClient, config: FunctionConfiguration, forwarderARN: string | undefined) => Promise<FunctionConfiguration$1>;
declare const getUninstrumentedFunctionConfigsFromRegEx: (lambdaClient: LambdaClient, cloudWatchLogsClient: CloudWatchLogsClient, pattern: string, forwarderArn: string | undefined) => Promise<FunctionConfiguration$1[]>;
declare const calculateUpdateRequest: (config: FunctionConfiguration, runtime: Runtime) => UpdateFunctionConfigurationRequest | undefined;
//#endregion
export { calculateUpdateRequest, getUninstrumentedFunctionConfig, getUninstrumentedFunctionConfigs, getUninstrumentedFunctionConfigsFromRegEx };
//# sourceMappingURL=uninstrument.d.ts.map