/**
 * Copyright 2019 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { OAuth2Client, JWT, Compute, UserRefreshClient } from 'google-auth-library';
import { GoogleConfigurable, MethodOptions, GlobalOptions, BodyResponseCallback, APIRequestContext } from 'googleapis-common';
import { GaxiosPromise } from 'gaxios';
export declare namespace youtubereporting_v1 {
    interface Options extends GlobalOptions {
        version: 'v1';
    }
    interface StandardParameters {
        /**
         * V1 error format.
         */
        '$.xgafv'?: string;
        /**
         * OAuth access token.
         */
        access_token?: string;
        /**
         * Data format for response.
         */
        alt?: string;
        /**
         * JSONP
         */
        callback?: string;
        /**
         * Selector specifying which fields to include in a partial response.
         */
        fields?: string;
        /**
         * API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
         */
        key?: string;
        /**
         * OAuth 2.0 token for the current user.
         */
        oauth_token?: string;
        /**
         * Returns response with indentations and line breaks.
         */
        prettyPrint?: boolean;
        /**
         * Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
         */
        quotaUser?: string;
        /**
         * Legacy upload protocol for media (e.g. "media", "multipart").
         */
        uploadType?: string;
        /**
         * Upload protocol for media (e.g. "raw", "multipart").
         */
        upload_protocol?: string;
    }
    /**
     * YouTube Reporting API
     *
     * Schedules reporting jobs containing your YouTube Analytics data and downloads the resulting bulk data reports in the form of CSV files.
     *
     * @example
     * const {google} = require('googleapis');
     * const youtubereporting = google.youtubereporting('v1');
     *
     * @namespace youtubereporting
     * @type {Function}
     * @version v1
     * @variation v1
     * @param {object=} options Options for Youtubereporting
     */
    class Youtubereporting {
        context: APIRequestContext;
        jobs: Resource$Jobs;
        media: Resource$Media;
        reportTypes: Resource$Reporttypes;
        constructor(options: GlobalOptions, google?: GoogleConfigurable);
    }
    /**
     * A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance:      service Foo {       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);     }  The JSON representation for `Empty` is empty JSON object `{}`.
     */
    interface Schema$Empty {
    }
    /**
     * gdata
     */
    interface Schema$GdataBlobstore2Info {
        /**
         * gdata
         */
        blobGeneration?: string;
        /**
         * gdata
         */
        blobId?: string;
        /**
         * gdata
         */
        downloadReadHandle?: string;
        /**
         * gdata
         */
        readToken?: string;
        /**
         * gdata
         */
        uploadMetadataContainer?: string;
    }
    /**
     * gdata
     */
    interface Schema$GdataCompositeMedia {
        /**
         * gdata
         */
        blobRef?: string;
        /**
         * gdata
         */
        blobstore2Info?: Schema$GdataBlobstore2Info;
        /**
         * gdata
         */
        cosmoBinaryReference?: string;
        /**
         * gdata
         */
        crc32cHash?: number;
        /**
         * gdata
         */
        inline?: string;
        /**
         * gdata
         */
        length?: string;
        /**
         * gdata
         */
        md5Hash?: string;
        /**
         * gdata
         */
        objectId?: Schema$GdataObjectId;
        /**
         * gdata
         */
        path?: string;
        /**
         * gdata
         */
        referenceType?: string;
        /**
         * gdata
         */
        sha1Hash?: string;
    }
    /**
     * gdata
     */
    interface Schema$GdataContentTypeInfo {
        /**
         * gdata
         */
        bestGuess?: string;
        /**
         * gdata
         */
        fromBytes?: string;
        /**
         * gdata
         */
        fromFileName?: string;
        /**
         * gdata
         */
        fromHeader?: string;
        /**
         * gdata
         */
        fromUrlPath?: string;
    }
    /**
     * gdata
     */
    interface Schema$GdataDiffChecksumsResponse {
        /**
         * gdata
         */
        checksumsLocation?: Schema$GdataCompositeMedia;
        /**
         * gdata
         */
        chunkSizeBytes?: string;
        /**
         * gdata
         */
        objectLocation?: Schema$GdataCompositeMedia;
        /**
         * gdata
         */
        objectSizeBytes?: string;
        /**
         * gdata
         */
        objectVersion?: string;
    }
    /**
     * gdata
     */
    interface Schema$GdataDiffDownloadResponse {
        /**
         * gdata
         */
        objectLocation?: Schema$GdataCompositeMedia;
    }
    /**
     * gdata
     */
    interface Schema$GdataDiffUploadRequest {
        /**
         * gdata
         */
        checksumsInfo?: Schema$GdataCompositeMedia;
        /**
         * gdata
         */
        objectInfo?: Schema$GdataCompositeMedia;
        /**
         * gdata
         */
        objectVersion?: string;
    }
    /**
     * gdata
     */
    interface Schema$GdataDiffUploadResponse {
        /**
         * gdata
         */
        objectVersion?: string;
        /**
         * gdata
         */
        originalObject?: Schema$GdataCompositeMedia;
    }
    /**
     * gdata
     */
    interface Schema$GdataDiffVersionResponse {
        /**
         * gdata
         */
        objectSizeBytes?: string;
        /**
         * gdata
         */
        objectVersion?: string;
    }
    /**
     * gdata
     */
    interface Schema$GdataDownloadParameters {
        /**
         * gdata
         */
        allowGzipCompression?: boolean;
        /**
         * gdata
         */
        ignoreRange?: boolean;
    }
    /**
     * gdata
     */
    interface Schema$GdataMedia {
        /**
         * gdata
         */
        algorithm?: string;
        /**
         * gdata
         */
        bigstoreObjectRef?: string;
        /**
         * gdata
         */
        blobRef?: string;
        /**
         * gdata
         */
        blobstore2Info?: Schema$GdataBlobstore2Info;
        /**
         * gdata
         */
        compositeMedia?: Schema$GdataCompositeMedia[];
        /**
         * gdata
         */
        contentType?: string;
        /**
         * gdata
         */
        contentTypeInfo?: Schema$GdataContentTypeInfo;
        /**
         * gdata
         */
        cosmoBinaryReference?: string;
        /**
         * gdata
         */
        crc32cHash?: number;
        /**
         * gdata
         */
        diffChecksumsResponse?: Schema$GdataDiffChecksumsResponse;
        /**
         * gdata
         */
        diffDownloadResponse?: Schema$GdataDiffDownloadResponse;
        /**
         * gdata
         */
        diffUploadRequest?: Schema$GdataDiffUploadRequest;
        /**
         * gdata
         */
        diffUploadResponse?: Schema$GdataDiffUploadResponse;
        /**
         * gdata
         */
        diffVersionResponse?: Schema$GdataDiffVersionResponse;
        /**
         * gdata
         */
        downloadParameters?: Schema$GdataDownloadParameters;
        /**
         * gdata
         */
        filename?: string;
        /**
         * gdata
         */
        hash?: string;
        /**
         * gdata
         */
        hashVerified?: boolean;
        /**
         * gdata
         */
        inline?: string;
        /**
         * gdata
         */
        isPotentialRetry?: boolean;
        /**
         * gdata
         */
        length?: string;
        /**
         * gdata
         */
        md5Hash?: string;
        /**
         * gdata
         */
        mediaId?: string;
        /**
         * gdata
         */
        objectId?: Schema$GdataObjectId;
        /**
         * gdata
         */
        path?: string;
        /**
         * gdata
         */
        referenceType?: string;
        /**
         * gdata
         */
        sha1Hash?: string;
        /**
         * gdata
         */
        sha256Hash?: string;
        /**
         * gdata
         */
        timestamp?: string;
        /**
         * gdata
         */
        token?: string;
    }
    /**
     * gdata
     */
    interface Schema$GdataObjectId {
        /**
         * gdata
         */
        bucketName?: string;
        /**
         * gdata
         */
        generation?: string;
        /**
         * gdata
         */
        objectName?: string;
    }
    /**
     * A job creating reports of a specific type.
     */
    interface Schema$Job {
        /**
         * The creation date/time of the job.
         */
        createTime?: string;
        /**
         * The date/time when this job will expire/expired. After a job expired, no new reports are generated.
         */
        expireTime?: string;
        /**
         * The server-generated ID of the job (max. 40 characters).
         */
        id?: string;
        /**
         * The name of the job (max. 100 characters).
         */
        name?: string;
        /**
         * The type of reports this job creates. Corresponds to the ID of a ReportType.
         */
        reportTypeId?: string;
        /**
         * True if this a system-managed job that cannot be modified by the user; otherwise false.
         */
        systemManaged?: boolean;
    }
    /**
     * Response message for ReportingService.ListJobs.
     */
    interface Schema$ListJobsResponse {
        /**
         * The list of jobs.
         */
        jobs?: Schema$Job[];
        /**
         * A token to retrieve next page of results. Pass this value in the ListJobsRequest.page_token field in the subsequent call to `ListJobs` method to retrieve the next page of results.
         */
        nextPageToken?: string;
    }
    /**
     * Response message for ReportingService.ListReports.
     */
    interface Schema$ListReportsResponse {
        /**
         * A token to retrieve next page of results. Pass this value in the ListReportsRequest.page_token field in the subsequent call to `ListReports` method to retrieve the next page of results.
         */
        nextPageToken?: string;
        /**
         * The list of report types.
         */
        reports?: Schema$Report[];
    }
    /**
     * Response message for ReportingService.ListReportTypes.
     */
    interface Schema$ListReportTypesResponse {
        /**
         * A token to retrieve next page of results. Pass this value in the ListReportTypesRequest.page_token field in the subsequent call to `ListReportTypes` method to retrieve the next page of results.
         */
        nextPageToken?: string;
        /**
         * The list of report types.
         */
        reportTypes?: Schema$ReportType[];
    }
    /**
     * A report&#39;s metadata including the URL from which the report itself can be downloaded.
     */
    interface Schema$Report {
        /**
         * The date/time when this report was created.
         */
        createTime?: string;
        /**
         * The URL from which the report can be downloaded (max. 1000 characters).
         */
        downloadUrl?: string;
        /**
         * The end of the time period that the report instance covers. The value is exclusive.
         */
        endTime?: string;
        /**
         * The server-generated ID of the report.
         */
        id?: string;
        /**
         * The date/time when the job this report belongs to will expire/expired.
         */
        jobExpireTime?: string;
        /**
         * The ID of the job that created this report.
         */
        jobId?: string;
        /**
         * The start of the time period that the report instance covers. The value is inclusive.
         */
        startTime?: string;
    }
    /**
     * A report type.
     */
    interface Schema$ReportType {
        /**
         * The date/time when this report type was/will be deprecated.
         */
        deprecateTime?: string;
        /**
         * The ID of the report type (max. 100 characters).
         */
        id?: string;
        /**
         * The name of the report type (max. 100 characters).
         */
        name?: string;
        /**
         * True if this a system-managed report type; otherwise false. Reporting jobs for system-managed report types are created automatically and can thus not be used in the `CreateJob` method.
         */
        systemManaged?: boolean;
    }
    class Resource$Jobs {
        context: APIRequestContext;
        reports: Resource$Jobs$Reports;
        constructor(context: APIRequestContext);
        /**
         * youtubereporting.jobs.create
         * @desc Creates a job and returns it.
         * @alias youtubereporting.jobs.create
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string=} params.onBehalfOfContentOwner The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         * @param {().Job} params.resource Request body data
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
        create(params?: Params$Resource$Jobs$Create, options?: MethodOptions): GaxiosPromise<Schema$Job>;
        create(params: Params$Resource$Jobs$Create, options: MethodOptions | BodyResponseCallback<Schema$Job>, callback: BodyResponseCallback<Schema$Job>): void;
        create(params: Params$Resource$Jobs$Create, callback: BodyResponseCallback<Schema$Job>): void;
        create(callback: BodyResponseCallback<Schema$Job>): void;
        /**
         * youtubereporting.jobs.delete
         * @desc Deletes a job.
         * @alias youtubereporting.jobs.delete
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.jobId The ID of the job to delete.
         * @param {string=} params.onBehalfOfContentOwner The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
        delete(params?: Params$Resource$Jobs$Delete, options?: MethodOptions): GaxiosPromise<Schema$Empty>;
        delete(params: Params$Resource$Jobs$Delete, options: MethodOptions | BodyResponseCallback<Schema$Empty>, callback: BodyResponseCallback<Schema$Empty>): void;
        delete(params: Params$Resource$Jobs$Delete, callback: BodyResponseCallback<Schema$Empty>): void;
        delete(callback: BodyResponseCallback<Schema$Empty>): void;
        /**
         * youtubereporting.jobs.get
         * @desc Gets a job.
         * @alias youtubereporting.jobs.get
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.jobId The ID of the job to retrieve.
         * @param {string=} params.onBehalfOfContentOwner The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
        get(params?: Params$Resource$Jobs$Get, options?: MethodOptions): GaxiosPromise<Schema$Job>;
        get(params: Params$Resource$Jobs$Get, options: MethodOptions | BodyResponseCallback<Schema$Job>, callback: BodyResponseCallback<Schema$Job>): void;
        get(params: Params$Resource$Jobs$Get, callback: BodyResponseCallback<Schema$Job>): void;
        get(callback: BodyResponseCallback<Schema$Job>): void;
        /**
         * youtubereporting.jobs.list
         * @desc Lists jobs.
         * @alias youtubereporting.jobs.list
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {boolean=} params.includeSystemManaged If set to true, also system-managed jobs will be returned; otherwise only user-created jobs will be returned. System-managed jobs can neither be modified nor deleted.
         * @param {string=} params.onBehalfOfContentOwner The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         * @param {integer=} params.pageSize Requested page size. Server may return fewer jobs than requested. If unspecified, server will pick an appropriate default.
         * @param {string=} params.pageToken A token identifying a page of results the server should return. Typically, this is the value of ListReportTypesResponse.next_page_token returned in response to the previous call to the `ListJobs` method.
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
        list(params?: Params$Resource$Jobs$List, options?: MethodOptions): GaxiosPromise<Schema$ListJobsResponse>;
        list(params: Params$Resource$Jobs$List, options: MethodOptions | BodyResponseCallback<Schema$ListJobsResponse>, callback: BodyResponseCallback<Schema$ListJobsResponse>): void;
        list(params: Params$Resource$Jobs$List, callback: BodyResponseCallback<Schema$ListJobsResponse>): void;
        list(callback: BodyResponseCallback<Schema$ListJobsResponse>): void;
    }
    interface Params$Resource$Jobs$Create extends StandardParameters {
        /**
         * Auth client or API Key for the request
         */
        auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
        /**
         * The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         */
        onBehalfOfContentOwner?: string;
        /**
         * Request body metadata
         */
        requestBody?: Schema$Job;
    }
    interface Params$Resource$Jobs$Delete extends StandardParameters {
        /**
         * Auth client or API Key for the request
         */
        auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
        /**
         * The ID of the job to delete.
         */
        jobId?: string;
        /**
         * The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         */
        onBehalfOfContentOwner?: string;
    }
    interface Params$Resource$Jobs$Get extends StandardParameters {
        /**
         * Auth client or API Key for the request
         */
        auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
        /**
         * The ID of the job to retrieve.
         */
        jobId?: string;
        /**
         * The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         */
        onBehalfOfContentOwner?: string;
    }
    interface Params$Resource$Jobs$List extends StandardParameters {
        /**
         * Auth client or API Key for the request
         */
        auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
        /**
         * If set to true, also system-managed jobs will be returned; otherwise only user-created jobs will be returned. System-managed jobs can neither be modified nor deleted.
         */
        includeSystemManaged?: boolean;
        /**
         * The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         */
        onBehalfOfContentOwner?: string;
        /**
         * Requested page size. Server may return fewer jobs than requested. If unspecified, server will pick an appropriate default.
         */
        pageSize?: number;
        /**
         * A token identifying a page of results the server should return. Typically, this is the value of ListReportTypesResponse.next_page_token returned in response to the previous call to the `ListJobs` method.
         */
        pageToken?: string;
    }
    class Resource$Jobs$Reports {
        context: APIRequestContext;
        constructor(context: APIRequestContext);
        /**
         * youtubereporting.jobs.reports.get
         * @desc Gets the metadata of a specific report.
         * @alias youtubereporting.jobs.reports.get
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.jobId The ID of the job.
         * @param {string=} params.onBehalfOfContentOwner The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         * @param {string} params.reportId The ID of the report to retrieve.
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
        get(params?: Params$Resource$Jobs$Reports$Get, options?: MethodOptions): GaxiosPromise<Schema$Report>;
        get(params: Params$Resource$Jobs$Reports$Get, options: MethodOptions | BodyResponseCallback<Schema$Report>, callback: BodyResponseCallback<Schema$Report>): void;
        get(params: Params$Resource$Jobs$Reports$Get, callback: BodyResponseCallback<Schema$Report>): void;
        get(callback: BodyResponseCallback<Schema$Report>): void;
        /**
         * youtubereporting.jobs.reports.list
         * @desc Lists reports created by a specific job. Returns NOT_FOUND if the job does not exist.
         * @alias youtubereporting.jobs.reports.list
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string=} params.createdAfter If set, only reports created after the specified date/time are returned.
         * @param {string} params.jobId The ID of the job.
         * @param {string=} params.onBehalfOfContentOwner The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         * @param {integer=} params.pageSize Requested page size. Server may return fewer report types than requested. If unspecified, server will pick an appropriate default.
         * @param {string=} params.pageToken A token identifying a page of results the server should return. Typically, this is the value of ListReportsResponse.next_page_token returned in response to the previous call to the `ListReports` method.
         * @param {string=} params.startTimeAtOrAfter If set, only reports whose start time is greater than or equal the specified date/time are returned.
         * @param {string=} params.startTimeBefore If set, only reports whose start time is smaller than the specified date/time are returned.
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
        list(params?: Params$Resource$Jobs$Reports$List, options?: MethodOptions): GaxiosPromise<Schema$ListReportsResponse>;
        list(params: Params$Resource$Jobs$Reports$List, options: MethodOptions | BodyResponseCallback<Schema$ListReportsResponse>, callback: BodyResponseCallback<Schema$ListReportsResponse>): void;
        list(params: Params$Resource$Jobs$Reports$List, callback: BodyResponseCallback<Schema$ListReportsResponse>): void;
        list(callback: BodyResponseCallback<Schema$ListReportsResponse>): void;
    }
    interface Params$Resource$Jobs$Reports$Get extends StandardParameters {
        /**
         * Auth client or API Key for the request
         */
        auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
        /**
         * The ID of the job.
         */
        jobId?: string;
        /**
         * The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         */
        onBehalfOfContentOwner?: string;
        /**
         * The ID of the report to retrieve.
         */
        reportId?: string;
    }
    interface Params$Resource$Jobs$Reports$List extends StandardParameters {
        /**
         * Auth client or API Key for the request
         */
        auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
        /**
         * If set, only reports created after the specified date/time are returned.
         */
        createdAfter?: string;
        /**
         * The ID of the job.
         */
        jobId?: string;
        /**
         * The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         */
        onBehalfOfContentOwner?: string;
        /**
         * Requested page size. Server may return fewer report types than requested. If unspecified, server will pick an appropriate default.
         */
        pageSize?: number;
        /**
         * A token identifying a page of results the server should return. Typically, this is the value of ListReportsResponse.next_page_token returned in response to the previous call to the `ListReports` method.
         */
        pageToken?: string;
        /**
         * If set, only reports whose start time is greater than or equal the specified date/time are returned.
         */
        startTimeAtOrAfter?: string;
        /**
         * If set, only reports whose start time is smaller than the specified date/time are returned.
         */
        startTimeBefore?: string;
    }
    class Resource$Media {
        context: APIRequestContext;
        constructor(context: APIRequestContext);
        /**
         * youtubereporting.media.download
         * @desc Method for media download. Download is supported on the URI `/v1/media/{+name}?alt=media`.
         * @alias youtubereporting.media.download
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.resourceName Name of the media that is being downloaded.
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
        download(params?: Params$Resource$Media$Download, options?: MethodOptions): GaxiosPromise<Schema$GdataMedia>;
        download(params: Params$Resource$Media$Download, options: MethodOptions | BodyResponseCallback<Schema$GdataMedia>, callback: BodyResponseCallback<Schema$GdataMedia>): void;
        download(params: Params$Resource$Media$Download, callback: BodyResponseCallback<Schema$GdataMedia>): void;
        download(callback: BodyResponseCallback<Schema$GdataMedia>): void;
    }
    interface Params$Resource$Media$Download extends StandardParameters {
        /**
         * Auth client or API Key for the request
         */
        auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
        /**
         * Name of the media that is being downloaded.
         */
        resourceName?: string;
    }
    class Resource$Reporttypes {
        context: APIRequestContext;
        constructor(context: APIRequestContext);
        /**
         * youtubereporting.reportTypes.list
         * @desc Lists report types.
         * @alias youtubereporting.reportTypes.list
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {boolean=} params.includeSystemManaged If set to true, also system-managed report types will be returned; otherwise only the report types that can be used to create new reporting jobs will be returned.
         * @param {string=} params.onBehalfOfContentOwner The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         * @param {integer=} params.pageSize Requested page size. Server may return fewer report types than requested. If unspecified, server will pick an appropriate default.
         * @param {string=} params.pageToken A token identifying a page of results the server should return. Typically, this is the value of ListReportTypesResponse.next_page_token returned in response to the previous call to the `ListReportTypes` method.
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
        list(params?: Params$Resource$Reporttypes$List, options?: MethodOptions): GaxiosPromise<Schema$ListReportTypesResponse>;
        list(params: Params$Resource$Reporttypes$List, options: MethodOptions | BodyResponseCallback<Schema$ListReportTypesResponse>, callback: BodyResponseCallback<Schema$ListReportTypesResponse>): void;
        list(params: Params$Resource$Reporttypes$List, callback: BodyResponseCallback<Schema$ListReportTypesResponse>): void;
        list(callback: BodyResponseCallback<Schema$ListReportTypesResponse>): void;
    }
    interface Params$Resource$Reporttypes$List extends StandardParameters {
        /**
         * Auth client or API Key for the request
         */
        auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
        /**
         * If set to true, also system-managed report types will be returned; otherwise only the report types that can be used to create new reporting jobs will be returned.
         */
        includeSystemManaged?: boolean;
        /**
         * The content owner's external ID on which behalf the user is acting on. If not set, the user is acting for himself (his own channel).
         */
        onBehalfOfContentOwner?: string;
        /**
         * Requested page size. Server may return fewer report types than requested. If unspecified, server will pick an appropriate default.
         */
        pageSize?: number;
        /**
         * A token identifying a page of results the server should return. Typically, this is the value of ListReportTypesResponse.next_page_token returned in response to the previous call to the `ListReportTypes` method.
         */
        pageToken?: string;
    }
}
