import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { Reports } from "../operationsInterfaces/index.js";
import { ApiManagementClient } from "../apiManagementClient.js";
import { ReportRecordContract, ReportsListByApiOptionalParams, ReportsListByUserOptionalParams, ReportsListByOperationOptionalParams, ReportsListByProductOptionalParams, ReportsListByGeoOptionalParams, ReportsListBySubscriptionOptionalParams, ReportsListByTimeOptionalParams, RequestReportRecordContract, ReportsListByRequestOptionalParams } from "../models/index.js";
/** Class containing Reports operations. */
export declare class ReportsImpl implements Reports {
    private readonly client;
    /**
     * Initialize a new instance of the class Reports class.
     * @param client Reference to the service client
     */
    constructor(client: ApiManagementClient);
    /**
     * Lists report records by API.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter The filter to apply on the operation.
     * @param options The options parameters.
     */
    listByApi(resourceGroupName: string, serviceName: string, filter: string, options?: ReportsListByApiOptionalParams): PagedAsyncIterableIterator<ReportRecordContract>;
    private listByApiPagingPage;
    private listByApiPagingAll;
    /**
     * Lists report records by User.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter | ge, le
     *               |     | </br>| displayName | select, orderBy |     |     | </br>| userId | select, filter | eq |
     *               | </br>| apiRegion | filter | eq |     | </br>| productId | filter | eq |     | </br>|
     *               subscriptionId | filter | eq |     | </br>| apiId | filter | eq |     | </br>| operationId | filter
     *               | eq |     | </br>| callCountSuccess | select, orderBy |     |     | </br>| callCountBlocked |
     *               select, orderBy |     |     | </br>| callCountFailed | select, orderBy |     |     | </br>|
     *               callCountOther | select, orderBy |     |     | </br>| callCountTotal | select, orderBy |     |     |
     *               </br>| bandwidth | select, orderBy |     |     | </br>| cacheHitsCount | select |     |     | </br>|
     *               cacheMissCount | select |     |     | </br>| apiTimeAvg | select, orderBy |     |     | </br>|
     *               apiTimeMin | select |     |     | </br>| apiTimeMax | select |     |     | </br>| serviceTimeAvg |
     *               select |     |     | </br>| serviceTimeMin | select |     |     | </br>| serviceTimeMax | select |
     *                 |     | </br>
     * @param options The options parameters.
     */
    listByUser(resourceGroupName: string, serviceName: string, filter: string, options?: ReportsListByUserOptionalParams): PagedAsyncIterableIterator<ReportRecordContract>;
    private listByUserPagingPage;
    private listByUserPagingAll;
    /**
     * Lists report records by API Operations.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter | ge, le
     *               |     | </br>| displayName | select, orderBy |     |     | </br>| apiRegion | filter | eq |     |
     *               </br>| userId | filter | eq |     | </br>| productId | filter | eq |     | </br>| subscriptionId |
     *               filter | eq |     | </br>| apiId | filter | eq |     | </br>| operationId | select, filter | eq |
     *                | </br>| callCountSuccess | select, orderBy |     |     | </br>| callCountBlocked | select, orderBy
     *               |     |     | </br>| callCountFailed | select, orderBy |     |     | </br>| callCountOther | select,
     *               orderBy |     |     | </br>| callCountTotal | select, orderBy |     |     | </br>| bandwidth |
     *               select, orderBy |     |     | </br>| cacheHitsCount | select |     |     | </br>| cacheMissCount |
     *               select |     |     | </br>| apiTimeAvg | select, orderBy |     |     | </br>| apiTimeMin | select |
     *                  |     | </br>| apiTimeMax | select |     |     | </br>| serviceTimeAvg | select |     |     |
     *               </br>| serviceTimeMin | select |     |     | </br>| serviceTimeMax | select |     |     | </br>
     * @param options The options parameters.
     */
    listByOperation(resourceGroupName: string, serviceName: string, filter: string, options?: ReportsListByOperationOptionalParams): PagedAsyncIterableIterator<ReportRecordContract>;
    private listByOperationPagingPage;
    private listByOperationPagingAll;
    /**
     * Lists report records by Product.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter | ge, le
     *               |     | </br>| displayName | select, orderBy |     |     | </br>| apiRegion | filter | eq |     |
     *               </br>| userId | filter | eq |     | </br>| productId | select, filter | eq |     | </br>|
     *               subscriptionId | filter | eq |     | </br>| callCountSuccess | select, orderBy |     |     | </br>|
     *               callCountBlocked | select, orderBy |     |     | </br>| callCountFailed | select, orderBy |     |
     *                | </br>| callCountOther | select, orderBy |     |     | </br>| callCountTotal | select, orderBy |
     *                 |     | </br>| bandwidth | select, orderBy |     |     | </br>| cacheHitsCount | select |     |
     *                | </br>| cacheMissCount | select |     |     | </br>| apiTimeAvg | select, orderBy |     |     |
     *               </br>| apiTimeMin | select |     |     | </br>| apiTimeMax | select |     |     | </br>|
     *               serviceTimeAvg | select |     |     | </br>| serviceTimeMin | select |     |     | </br>|
     *               serviceTimeMax | select |     |     | </br>
     * @param options The options parameters.
     */
    listByProduct(resourceGroupName: string, serviceName: string, filter: string, options?: ReportsListByProductOptionalParams): PagedAsyncIterableIterator<ReportRecordContract>;
    private listByProductPagingPage;
    private listByProductPagingAll;
    /**
     * Lists report records by geography.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter | ge, le
     *               |     | </br>| country | select |     |     | </br>| region | select |     |     | </br>| zip |
     *               select |     |     | </br>| apiRegion | filter | eq |     | </br>| userId | filter | eq |     |
     *               </br>| productId | filter | eq |     | </br>| subscriptionId | filter | eq |     | </br>| apiId |
     *               filter | eq |     | </br>| operationId | filter | eq |     | </br>| callCountSuccess | select |
     *               |     | </br>| callCountBlocked | select |     |     | </br>| callCountFailed | select |     |     |
     *               </br>| callCountOther | select |     |     | </br>| bandwidth | select, orderBy |     |     | </br>|
     *               cacheHitsCount | select |     |     | </br>| cacheMissCount | select |     |     | </br>| apiTimeAvg
     *               | select |     |     | </br>| apiTimeMin | select |     |     | </br>| apiTimeMax | select |     |
     *                 | </br>| serviceTimeAvg | select |     |     | </br>| serviceTimeMin | select |     |     | </br>|
     *               serviceTimeMax | select |     |     | </br>
     * @param options The options parameters.
     */
    listByGeo(resourceGroupName: string, serviceName: string, filter: string, options?: ReportsListByGeoOptionalParams): PagedAsyncIterableIterator<ReportRecordContract>;
    private listByGeoPagingPage;
    private listByGeoPagingAll;
    /**
     * Lists report records by subscription.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter | ge, le
     *               |     | </br>| displayName | select, orderBy |     |     | </br>| apiRegion | filter | eq |     |
     *               </br>| userId | select, filter | eq |     | </br>| productId | select, filter | eq |     | </br>|
     *               subscriptionId | select, filter | eq |     | </br>| callCountSuccess | select, orderBy |     |     |
     *               </br>| callCountBlocked | select, orderBy |     |     | </br>| callCountFailed | select, orderBy |
     *                 |     | </br>| callCountOther | select, orderBy |     |     | </br>| callCountTotal | select,
     *               orderBy |     |     | </br>| bandwidth | select, orderBy |     |     | </br>| cacheHitsCount |
     *               select |     |     | </br>| cacheMissCount | select |     |     | </br>| apiTimeAvg | select,
     *               orderBy |     |     | </br>| apiTimeMin | select |     |     | </br>| apiTimeMax | select |     |
     *                | </br>| serviceTimeAvg | select |     |     | </br>| serviceTimeMin | select |     |     | </br>|
     *               serviceTimeMax | select |     |     | </br>
     * @param options The options parameters.
     */
    listBySubscription(resourceGroupName: string, serviceName: string, filter: string, options?: ReportsListBySubscriptionOptionalParams): PagedAsyncIterableIterator<ReportRecordContract>;
    private listBySubscriptionPagingPage;
    private listBySubscriptionPagingAll;
    /**
     * Lists report records by Time.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter, select
     *               | ge, le |     | </br>| interval | select |     |     | </br>| apiRegion | filter | eq |     |
     *               </br>| userId | filter | eq |     | </br>| productId | filter | eq |     | </br>| subscriptionId |
     *               filter | eq |     | </br>| apiId | filter | eq |     | </br>| operationId | filter | eq |     |
     *               </br>| callCountSuccess | select |     |     | </br>| callCountBlocked | select |     |     | </br>|
     *               callCountFailed | select |     |     | </br>| callCountOther | select |     |     | </br>| bandwidth
     *               | select, orderBy |     |     | </br>| cacheHitsCount | select |     |     | </br>| cacheMissCount |
     *               select |     |     | </br>| apiTimeAvg | select |     |     | </br>| apiTimeMin | select |     |
     *               | </br>| apiTimeMax | select |     |     | </br>| serviceTimeAvg | select |     |     | </br>|
     *               serviceTimeMin | select |     |     | </br>| serviceTimeMax | select |     |     | </br>
     * @param interval By time interval. Interval must be multiple of 15 minutes and may not be zero. The
     *                 value should be in ISO  8601 format (http://en.wikipedia.org/wiki/ISO_8601#Durations).This code can
     *                 be used to convert TimeSpan to a valid interval string: XmlConvert.ToString(new TimeSpan(hours,
     *                 minutes, seconds)).
     * @param options The options parameters.
     */
    listByTime(resourceGroupName: string, serviceName: string, filter: string, interval: string, options?: ReportsListByTimeOptionalParams): PagedAsyncIterableIterator<ReportRecordContract>;
    private listByTimePagingPage;
    private listByTimePagingAll;
    /**
     * Lists report records by Request.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter | ge, le
     *               |     | </br>| apiId | filter | eq |     | </br>| operationId | filter | eq |     | </br>| productId
     *               | filter | eq |     | </br>| userId | filter | eq |     | </br>| apiRegion | filter | eq |     |
     *               </br>| subscriptionId | filter | eq |     | </br>
     * @param options The options parameters.
     */
    listByRequest(resourceGroupName: string, serviceName: string, filter: string, options?: ReportsListByRequestOptionalParams): PagedAsyncIterableIterator<RequestReportRecordContract>;
    private listByRequestPagingPage;
    private listByRequestPagingAll;
    /**
     * Lists report records by API.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter The filter to apply on the operation.
     * @param options The options parameters.
     */
    private _listByApi;
    /**
     * Lists report records by User.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter | ge, le
     *               |     | </br>| displayName | select, orderBy |     |     | </br>| userId | select, filter | eq |
     *               | </br>| apiRegion | filter | eq |     | </br>| productId | filter | eq |     | </br>|
     *               subscriptionId | filter | eq |     | </br>| apiId | filter | eq |     | </br>| operationId | filter
     *               | eq |     | </br>| callCountSuccess | select, orderBy |     |     | </br>| callCountBlocked |
     *               select, orderBy |     |     | </br>| callCountFailed | select, orderBy |     |     | </br>|
     *               callCountOther | select, orderBy |     |     | </br>| callCountTotal | select, orderBy |     |     |
     *               </br>| bandwidth | select, orderBy |     |     | </br>| cacheHitsCount | select |     |     | </br>|
     *               cacheMissCount | select |     |     | </br>| apiTimeAvg | select, orderBy |     |     | </br>|
     *               apiTimeMin | select |     |     | </br>| apiTimeMax | select |     |     | </br>| serviceTimeAvg |
     *               select |     |     | </br>| serviceTimeMin | select |     |     | </br>| serviceTimeMax | select |
     *                 |     | </br>
     * @param options The options parameters.
     */
    private _listByUser;
    /**
     * Lists report records by API Operations.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter | ge, le
     *               |     | </br>| displayName | select, orderBy |     |     | </br>| apiRegion | filter | eq |     |
     *               </br>| userId | filter | eq |     | </br>| productId | filter | eq |     | </br>| subscriptionId |
     *               filter | eq |     | </br>| apiId | filter | eq |     | </br>| operationId | select, filter | eq |
     *                | </br>| callCountSuccess | select, orderBy |     |     | </br>| callCountBlocked | select, orderBy
     *               |     |     | </br>| callCountFailed | select, orderBy |     |     | </br>| callCountOther | select,
     *               orderBy |     |     | </br>| callCountTotal | select, orderBy |     |     | </br>| bandwidth |
     *               select, orderBy |     |     | </br>| cacheHitsCount | select |     |     | </br>| cacheMissCount |
     *               select |     |     | </br>| apiTimeAvg | select, orderBy |     |     | </br>| apiTimeMin | select |
     *                  |     | </br>| apiTimeMax | select |     |     | </br>| serviceTimeAvg | select |     |     |
     *               </br>| serviceTimeMin | select |     |     | </br>| serviceTimeMax | select |     |     | </br>
     * @param options The options parameters.
     */
    private _listByOperation;
    /**
     * Lists report records by Product.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter | ge, le
     *               |     | </br>| displayName | select, orderBy |     |     | </br>| apiRegion | filter | eq |     |
     *               </br>| userId | filter | eq |     | </br>| productId | select, filter | eq |     | </br>|
     *               subscriptionId | filter | eq |     | </br>| callCountSuccess | select, orderBy |     |     | </br>|
     *               callCountBlocked | select, orderBy |     |     | </br>| callCountFailed | select, orderBy |     |
     *                | </br>| callCountOther | select, orderBy |     |     | </br>| callCountTotal | select, orderBy |
     *                 |     | </br>| bandwidth | select, orderBy |     |     | </br>| cacheHitsCount | select |     |
     *                | </br>| cacheMissCount | select |     |     | </br>| apiTimeAvg | select, orderBy |     |     |
     *               </br>| apiTimeMin | select |     |     | </br>| apiTimeMax | select |     |     | </br>|
     *               serviceTimeAvg | select |     |     | </br>| serviceTimeMin | select |     |     | </br>|
     *               serviceTimeMax | select |     |     | </br>
     * @param options The options parameters.
     */
    private _listByProduct;
    /**
     * Lists report records by geography.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter | ge, le
     *               |     | </br>| country | select |     |     | </br>| region | select |     |     | </br>| zip |
     *               select |     |     | </br>| apiRegion | filter | eq |     | </br>| userId | filter | eq |     |
     *               </br>| productId | filter | eq |     | </br>| subscriptionId | filter | eq |     | </br>| apiId |
     *               filter | eq |     | </br>| operationId | filter | eq |     | </br>| callCountSuccess | select |
     *               |     | </br>| callCountBlocked | select |     |     | </br>| callCountFailed | select |     |     |
     *               </br>| callCountOther | select |     |     | </br>| bandwidth | select, orderBy |     |     | </br>|
     *               cacheHitsCount | select |     |     | </br>| cacheMissCount | select |     |     | </br>| apiTimeAvg
     *               | select |     |     | </br>| apiTimeMin | select |     |     | </br>| apiTimeMax | select |     |
     *                 | </br>| serviceTimeAvg | select |     |     | </br>| serviceTimeMin | select |     |     | </br>|
     *               serviceTimeMax | select |     |     | </br>
     * @param options The options parameters.
     */
    private _listByGeo;
    /**
     * Lists report records by subscription.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter | ge, le
     *               |     | </br>| displayName | select, orderBy |     |     | </br>| apiRegion | filter | eq |     |
     *               </br>| userId | select, filter | eq |     | </br>| productId | select, filter | eq |     | </br>|
     *               subscriptionId | select, filter | eq |     | </br>| callCountSuccess | select, orderBy |     |     |
     *               </br>| callCountBlocked | select, orderBy |     |     | </br>| callCountFailed | select, orderBy |
     *                 |     | </br>| callCountOther | select, orderBy |     |     | </br>| callCountTotal | select,
     *               orderBy |     |     | </br>| bandwidth | select, orderBy |     |     | </br>| cacheHitsCount |
     *               select |     |     | </br>| cacheMissCount | select |     |     | </br>| apiTimeAvg | select,
     *               orderBy |     |     | </br>| apiTimeMin | select |     |     | </br>| apiTimeMax | select |     |
     *                | </br>| serviceTimeAvg | select |     |     | </br>| serviceTimeMin | select |     |     | </br>|
     *               serviceTimeMax | select |     |     | </br>
     * @param options The options parameters.
     */
    private _listBySubscription;
    /**
     * Lists report records by Time.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter, select
     *               | ge, le |     | </br>| interval | select |     |     | </br>| apiRegion | filter | eq |     |
     *               </br>| userId | filter | eq |     | </br>| productId | filter | eq |     | </br>| subscriptionId |
     *               filter | eq |     | </br>| apiId | filter | eq |     | </br>| operationId | filter | eq |     |
     *               </br>| callCountSuccess | select |     |     | </br>| callCountBlocked | select |     |     | </br>|
     *               callCountFailed | select |     |     | </br>| callCountOther | select |     |     | </br>| bandwidth
     *               | select, orderBy |     |     | </br>| cacheHitsCount | select |     |     | </br>| cacheMissCount |
     *               select |     |     | </br>| apiTimeAvg | select |     |     | </br>| apiTimeMin | select |     |
     *               | </br>| apiTimeMax | select |     |     | </br>| serviceTimeAvg | select |     |     | </br>|
     *               serviceTimeMin | select |     |     | </br>| serviceTimeMax | select |     |     | </br>
     * @param interval By time interval. Interval must be multiple of 15 minutes and may not be zero. The
     *                 value should be in ISO  8601 format (http://en.wikipedia.org/wiki/ISO_8601#Durations).This code can
     *                 be used to convert TimeSpan to a valid interval string: XmlConvert.ToString(new TimeSpan(hours,
     *                 minutes, seconds)).
     * @param options The options parameters.
     */
    private _listByTime;
    /**
     * Lists report records by Request.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param filter |   Field     |     Usage     |     Supported operators     |     Supported functions
     *                  |</br>|-------------|-------------|-------------|-------------|</br>| timestamp | filter | ge, le
     *               |     | </br>| apiId | filter | eq |     | </br>| operationId | filter | eq |     | </br>| productId
     *               | filter | eq |     | </br>| userId | filter | eq |     | </br>| apiRegion | filter | eq |     |
     *               </br>| subscriptionId | filter | eq |     | </br>
     * @param options The options parameters.
     */
    private _listByRequest;
    /**
     * ListByApiNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param nextLink The nextLink from the previous successful call to the ListByApi method.
     * @param options The options parameters.
     */
    private _listByApiNext;
    /**
     * ListByUserNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param nextLink The nextLink from the previous successful call to the ListByUser method.
     * @param options The options parameters.
     */
    private _listByUserNext;
    /**
     * ListByOperationNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param nextLink The nextLink from the previous successful call to the ListByOperation method.
     * @param options The options parameters.
     */
    private _listByOperationNext;
    /**
     * ListByProductNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param nextLink The nextLink from the previous successful call to the ListByProduct method.
     * @param options The options parameters.
     */
    private _listByProductNext;
    /**
     * ListByGeoNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param nextLink The nextLink from the previous successful call to the ListByGeo method.
     * @param options The options parameters.
     */
    private _listByGeoNext;
    /**
     * ListBySubscriptionNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param nextLink The nextLink from the previous successful call to the ListBySubscription method.
     * @param options The options parameters.
     */
    private _listBySubscriptionNext;
    /**
     * ListByTimeNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param nextLink The nextLink from the previous successful call to the ListByTime method.
     * @param options The options parameters.
     */
    private _listByTimeNext;
}
//# sourceMappingURL=reports.d.ts.map