import { GetObjectCommandInput, ListObjectsV2CommandInput, ListObjectsV2CommandOutput, S3Client } from '@aws-sdk/client-s3';
import { CloudWatchClient, GetMetricDataCommandInput, GetMetricDataCommandOutput } from '@aws-sdk/client-cloudwatch';
import { CloudWatchLogsClient, DescribeLogGroupsCommandInput, DescribeLogGroupsCommandOutput, DescribeQueriesCommandInput, DescribeQueriesCommandOutput, GetQueryResultsCommandInput as CloudWatchLogsGetQueryResultsCommandInput, GetQueryResultsCommandOutput as CloudWatchLogsGetQueryResultsCommandOutput, StartQueryCommandInput, StartQueryCommandOutput } from '@aws-sdk/client-cloudwatch-logs';
import { CostExplorerClient, GetCostAndUsageCommandInput, GetCostAndUsageCommandOutput, GetRightsizingRecommendationCommandInput, GetRightsizingRecommendationCommandOutput } from '@aws-sdk/client-cost-explorer';
import { AthenaClient, GetQueryExecutionCommandInput, GetQueryExecutionCommandOutput, GetQueryResultsCommandInput as AthenaGetQueryResultsCommandInput, GetQueryResultsCommandOutput as AthenaGetQueryResultsCommandOutput, StartQueryExecutionCommandInput, StartQueryExecutionCommandOutput } from '@aws-sdk/client-athena';
import { GetTableCommandInput, GetTableCommandOutput, GlueClient } from '@aws-sdk/client-glue';
import { EC2ComputeOptimizerRecommendationData } from './Recommendations/ComputeOptimizer';
export declare class ServiceWrapper {
    private readonly cloudWatch;
    private readonly cloudWatchLogs;
    private readonly costExplorer;
    private readonly s3;
    private readonly athena?;
    private readonly glue?;
    constructor(cloudWatch: CloudWatchClient, cloudWatchLogs: CloudWatchLogsClient, costExplorer: CostExplorerClient, s3: S3Client, athena?: AthenaClient, glue?: GlueClient);
    private getCostAndUsageResponse;
    private getMetricDataResponse;
    private getRightsizingRecommendationResponse;
    private getAthenaQueryResults;
    private checkForPartialData;
    getQueryByInterval(intervalInDays: number, func: (start: Date, end: Date, params?: any) => void, start: Date, end: Date, ...args: any): Promise<Array<any>>;
    getCloudWatchLogQueryResults(params: CloudWatchLogsGetQueryResultsCommandInput): Promise<CloudWatchLogsGetQueryResultsCommandOutput>;
    describeLogGroups(params: DescribeLogGroupsCommandInput): Promise<DescribeLogGroupsCommandOutput>;
    describeCloudWatchLogsQueries(params: DescribeQueriesCommandInput): Promise<DescribeQueriesCommandOutput>;
    startCloudWatchLogsQuery(params: StartQueryCommandInput): Promise<StartQueryCommandOutput>;
    startAthenaQueryExecution(queryParams: StartQueryExecutionCommandInput): Promise<StartQueryExecutionCommandOutput>;
    getAthenaQueryExecution(queryExecutionInput: GetQueryExecutionCommandInput): Promise<GetQueryExecutionCommandOutput>;
    getAthenaQueryResultSets(queryExecutionInput: AthenaGetQueryResultsCommandInput): Promise<AthenaGetQueryResultsCommandOutput[]>;
    getCostAndUsageResponses(params: GetCostAndUsageCommandInput): Promise<GetCostAndUsageCommandOutput[]>;
    getMetricDataResponses(params: GetMetricDataCommandInput): Promise<GetMetricDataCommandOutput[]>;
    getRightsizingRecommendationsResponses(params: GetRightsizingRecommendationCommandInput): Promise<GetRightsizingRecommendationCommandOutput[]>;
    listBucketObjects(params: ListObjectsV2CommandInput): Promise<ListObjectsV2CommandOutput>;
    getComputeOptimizerRecommendationsResponse(params: GetObjectCommandInput): Promise<EC2ComputeOptimizerRecommendationData[]>;
    getAthenaTableDescription(params: GetTableCommandInput): Promise<GetTableCommandOutput>;
}
