/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * 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 { AxiosPromise } from 'axios';
import { GoogleApis } from '../..';
import { BodyResponseCallback, GlobalOptions, MethodOptions } from '../../lib/api';
/**
 * Ad Exchange Seller API
 *
 * Accesses the inventory of Ad Exchange seller users and generates reports.
 *
 * @example
 * const google = require('googleapis');
 * const adexchangeseller = google.adexchangeseller('v1');
 *
 * @namespace adexchangeseller
 * @type {Function}
 * @version v1
 * @variation v1
 * @param {object=} options Options for Adexchangeseller
 */
export declare class Adexchangeseller {
    _options: GlobalOptions;
    google: GoogleApis;
    root: this;
    adclients: Resource$Adclients;
    adunits: Resource$Adunits;
    customchannels: Resource$Customchannels;
    reports: Resource$Reports;
    urlchannels: Resource$Urlchannels;
    constructor(options: GlobalOptions, google: GoogleApis);
    getRoot(): this;
}
export interface Schema$AdClient {
    /**
     * Whether this ad client is opted in to ARC.
     */
    arcOptIn: boolean;
    /**
     * Unique identifier of this ad client.
     */
    id: string;
    /**
     * Kind of resource this is, in this case adexchangeseller#adClient.
     */
    kind: string;
    /**
     * This ad client&#39;s product code, which corresponds to the PRODUCT_CODE
     * report dimension.
     */
    productCode: string;
    /**
     * Whether this ad client supports being reported on.
     */
    supportsReporting: boolean;
}
export interface Schema$AdClients {
    /**
     * ETag of this response for caching purposes.
     */
    etag: string;
    /**
     * The ad clients returned in this list response.
     */
    items: Schema$AdClient[];
    /**
     * Kind of list this is, in this case adexchangeseller#adClients.
     */
    kind: string;
    /**
     * Continuation token used to page through ad clients. To retrieve the next
     * page of results, set the next request&#39;s &quot;pageToken&quot; value to
     * this.
     */
    nextPageToken: string;
}
export interface Schema$AdUnit {
    /**
     * Identity code of this ad unit, not necessarily unique across ad clients.
     */
    code: string;
    /**
     * Unique identifier of this ad unit. This should be considered an opaque
     * identifier; it is not safe to rely on it being in any particular format.
     */
    id: string;
    /**
     * Kind of resource this is, in this case adexchangeseller#adUnit.
     */
    kind: string;
    /**
     * Name of this ad unit.
     */
    name: string;
    /**
     * Status of this ad unit. Possible values are: NEW: Indicates that the ad
     * unit was created within the last seven days and does not yet have any
     * activity associated with it.  ACTIVE: Indicates that there has been
     * activity on this ad unit in the last seven days.  INACTIVE: Indicates that
     * there has been no activity on this ad unit in the last seven days.
     */
    status: string;
}
export interface Schema$AdUnits {
    /**
     * ETag of this response for caching purposes.
     */
    etag: string;
    /**
     * The ad units returned in this list response.
     */
    items: Schema$AdUnit[];
    /**
     * Kind of list this is, in this case adexchangeseller#adUnits.
     */
    kind: string;
    /**
     * Continuation token used to page through ad units. To retrieve the next page
     * of results, set the next request&#39;s &quot;pageToken&quot; value to this.
     */
    nextPageToken: string;
}
export interface Schema$CustomChannel {
    /**
     * Code of this custom channel, not necessarily unique across ad clients.
     */
    code: string;
    /**
     * Unique identifier of this custom channel. This should be considered an
     * opaque identifier; it is not safe to rely on it being in any particular
     * format.
     */
    id: string;
    /**
     * Kind of resource this is, in this case adexchangeseller#customChannel.
     */
    kind: string;
    /**
     * Name of this custom channel.
     */
    name: string;
    /**
     * The targeting information of this custom channel, if activated.
     */
    targetingInfo: any;
}
export interface Schema$CustomChannels {
    /**
     * ETag of this response for caching purposes.
     */
    etag: string;
    /**
     * The custom channels returned in this list response.
     */
    items: Schema$CustomChannel[];
    /**
     * Kind of list this is, in this case adexchangeseller#customChannels.
     */
    kind: string;
    /**
     * Continuation token used to page through custom channels. To retrieve the
     * next page of results, set the next request&#39;s &quot;pageToken&quot;
     * value to this.
     */
    nextPageToken: string;
}
export interface Schema$Report {
    /**
     * The averages of the report. This is the same length as any other row in the
     * report; cells corresponding to dimension columns are empty.
     */
    averages: string[];
    /**
     * The header information of the columns requested in the report. This is a
     * list of headers; one for each dimension in the request, followed by one for
     * each metric in the request.
     */
    headers: any[];
    /**
     * Kind this is, in this case adexchangeseller#report.
     */
    kind: string;
    /**
     * The output rows of the report. Each row is a list of cells; one for each
     * dimension in the request, followed by one for each metric in the request.
     * The dimension cells contain strings, and the metric cells contain numbers.
     */
    rows: string[][];
    /**
     * The total number of rows matched by the report request. Fewer rows may be
     * returned in the response due to being limited by the row count requested or
     * the report row limit.
     */
    totalMatchedRows: string;
    /**
     * The totals of the report. This is the same length as any other row in the
     * report; cells corresponding to dimension columns are empty.
     */
    totals: string[];
    /**
     * Any warnings associated with generation of the report.
     */
    warnings: string[];
}
export interface Schema$SavedReport {
    /**
     * Unique identifier of this saved report.
     */
    id: string;
    /**
     * Kind of resource this is, in this case adexchangeseller#savedReport.
     */
    kind: string;
    /**
     * This saved report&#39;s name.
     */
    name: string;
}
export interface Schema$SavedReports {
    /**
     * ETag of this response for caching purposes.
     */
    etag: string;
    /**
     * The saved reports returned in this list response.
     */
    items: Schema$SavedReport[];
    /**
     * Kind of list this is, in this case adexchangeseller#savedReports.
     */
    kind: string;
    /**
     * Continuation token used to page through saved reports. To retrieve the next
     * page of results, set the next request&#39;s &quot;pageToken&quot; value to
     * this.
     */
    nextPageToken: string;
}
export interface Schema$UrlChannel {
    /**
     * Unique identifier of this URL channel. This should be considered an opaque
     * identifier; it is not safe to rely on it being in any particular format.
     */
    id: string;
    /**
     * Kind of resource this is, in this case adexchangeseller#urlChannel.
     */
    kind: string;
    /**
     * URL Pattern of this URL channel. Does not include &quot;http://&quot; or
     * &quot;https://&quot;. Example: www.example.com/home
     */
    urlPattern: string;
}
export interface Schema$UrlChannels {
    /**
     * ETag of this response for caching purposes.
     */
    etag: string;
    /**
     * The URL channels returned in this list response.
     */
    items: Schema$UrlChannel[];
    /**
     * Kind of list this is, in this case adexchangeseller#urlChannels.
     */
    kind: string;
    /**
     * Continuation token used to page through URL channels. To retrieve the next
     * page of results, set the next request&#39;s &quot;pageToken&quot; value to
     * this.
     */
    nextPageToken: string;
}
export declare class Resource$Adclients {
    root: Adexchangeseller;
    constructor(root: Adexchangeseller);
    getRoot(): Adexchangeseller;
    /**
     * adexchangeseller.adclients.list
     * @desc List all ad clients in this Ad Exchange account.
     * @alias adexchangeseller.adclients.list
     * @memberOf! ()
     *
     * @param {object=} params Parameters for request
     * @param {integer=} params.maxResults The maximum number of ad clients to include in the response, used for paging.
     * @param {string=} params.pageToken A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
     * @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?: any, options?: MethodOptions): AxiosPromise<Schema$AdClients>;
    list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$AdClients>, callback?: BodyResponseCallback<Schema$AdClients>): void;
}
export declare class Resource$Adunits {
    root: Adexchangeseller;
    customchannels: Resource$Adunits$Customchannels;
    constructor(root: Adexchangeseller);
    getRoot(): Adexchangeseller;
    /**
     * adexchangeseller.adunits.get
     * @desc Gets the specified ad unit in the specified ad client.
     * @alias adexchangeseller.adunits.get
     * @memberOf! ()
     *
     * @param {object} params Parameters for request
     * @param {string} params.adClientId Ad client for which to get the ad unit.
     * @param {string} params.adUnitId Ad unit 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?: any, options?: MethodOptions): AxiosPromise<Schema$AdUnit>;
    get(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$AdUnit>, callback?: BodyResponseCallback<Schema$AdUnit>): void;
    /**
     * adexchangeseller.adunits.list
     * @desc List all ad units in the specified ad client for this Ad Exchange
     * account.
     * @alias adexchangeseller.adunits.list
     * @memberOf! ()
     *
     * @param {object} params Parameters for request
     * @param {string} params.adClientId Ad client for which to list ad units.
     * @param {boolean=} params.includeInactive Whether to include inactive ad units. Default: true.
     * @param {integer=} params.maxResults The maximum number of ad units to include in the response, used for paging.
     * @param {string=} params.pageToken A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
     * @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?: any, options?: MethodOptions): AxiosPromise<Schema$AdUnits>;
    list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$AdUnits>, callback?: BodyResponseCallback<Schema$AdUnits>): void;
}
export declare class Resource$Adunits$Customchannels {
    root: Adexchangeseller;
    constructor(root: Adexchangeseller);
    getRoot(): Adexchangeseller;
    /**
     * adexchangeseller.adunits.customchannels.list
     * @desc List all custom channels which the specified ad unit belongs to.
     * @alias adexchangeseller.adunits.customchannels.list
     * @memberOf! ()
     *
     * @param {object} params Parameters for request
     * @param {string} params.adClientId Ad client which contains the ad unit.
     * @param {string} params.adUnitId Ad unit for which to list custom channels.
     * @param {integer=} params.maxResults The maximum number of custom channels to include in the response, used for paging.
     * @param {string=} params.pageToken A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
     * @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?: any, options?: MethodOptions): AxiosPromise<Schema$CustomChannels>;
    list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$CustomChannels>, callback?: BodyResponseCallback<Schema$CustomChannels>): void;
}
export declare class Resource$Customchannels {
    root: Adexchangeseller;
    adunits: Resource$Customchannels$Adunits;
    constructor(root: Adexchangeseller);
    getRoot(): Adexchangeseller;
    /**
     * adexchangeseller.customchannels.get
     * @desc Get the specified custom channel from the specified ad client.
     * @alias adexchangeseller.customchannels.get
     * @memberOf! ()
     *
     * @param {object} params Parameters for request
     * @param {string} params.adClientId Ad client which contains the custom channel.
     * @param {string} params.customChannelId Custom channel 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?: any, options?: MethodOptions): AxiosPromise<Schema$CustomChannel>;
    get(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$CustomChannel>, callback?: BodyResponseCallback<Schema$CustomChannel>): void;
    /**
     * adexchangeseller.customchannels.list
     * @desc List all custom channels in the specified ad client for this Ad
     * Exchange account.
     * @alias adexchangeseller.customchannels.list
     * @memberOf! ()
     *
     * @param {object} params Parameters for request
     * @param {string} params.adClientId Ad client for which to list custom channels.
     * @param {integer=} params.maxResults The maximum number of custom channels to include in the response, used for paging.
     * @param {string=} params.pageToken A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
     * @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?: any, options?: MethodOptions): AxiosPromise<Schema$CustomChannels>;
    list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$CustomChannels>, callback?: BodyResponseCallback<Schema$CustomChannels>): void;
}
export declare class Resource$Customchannels$Adunits {
    root: Adexchangeseller;
    constructor(root: Adexchangeseller);
    getRoot(): Adexchangeseller;
    /**
     * adexchangeseller.customchannels.adunits.list
     * @desc List all ad units in the specified custom channel.
     * @alias adexchangeseller.customchannels.adunits.list
     * @memberOf! ()
     *
     * @param {object} params Parameters for request
     * @param {string} params.adClientId Ad client which contains the custom channel.
     * @param {string} params.customChannelId Custom channel for which to list ad units.
     * @param {boolean=} params.includeInactive Whether to include inactive ad units. Default: true.
     * @param {integer=} params.maxResults The maximum number of ad units to include in the response, used for paging.
     * @param {string=} params.pageToken A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
     * @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?: any, options?: MethodOptions): AxiosPromise<Schema$AdUnits>;
    list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$AdUnits>, callback?: BodyResponseCallback<Schema$AdUnits>): void;
}
export declare class Resource$Reports {
    root: Adexchangeseller;
    saved: Resource$Reports$Saved;
    constructor(root: Adexchangeseller);
    getRoot(): Adexchangeseller;
    /**
     * adexchangeseller.reports.generate
     * @desc Generate an Ad Exchange report based on the report request sent in
     * the query parameters. Returns the result as JSON; to retrieve output in CSV
     * format specify "alt=csv" as a query parameter.
     * @alias adexchangeseller.reports.generate
     * @memberOf! ()
     *
     * @param {object} params Parameters for request
     * @param {string=} params.dimension Dimensions to base the report on.
     * @param {string} params.endDate End of the date range to report on in "YYYY-MM-DD" format, inclusive.
     * @param {string=} params.filter Filters to be run on the report.
     * @param {string=} params.locale Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
     * @param {integer=} params.maxResults The maximum number of rows of report data to return.
     * @param {string=} params.metric Numeric columns to include in the report.
     * @param {string=} params.sort The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending.
     * @param {string} params.startDate Start of the date range to report on in "YYYY-MM-DD" format, inclusive.
     * @param {integer=} params.startIndex Index of the first row of report data to return.
     * @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
     */
    generate(params?: any, options?: MethodOptions): AxiosPromise<Schema$Report>;
    generate(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$Report>, callback?: BodyResponseCallback<Schema$Report>): void;
}
export declare class Resource$Reports$Saved {
    root: Adexchangeseller;
    constructor(root: Adexchangeseller);
    getRoot(): Adexchangeseller;
    /**
     * adexchangeseller.reports.saved.generate
     * @desc Generate an Ad Exchange report based on the saved report ID sent in
     * the query parameters.
     * @alias adexchangeseller.reports.saved.generate
     * @memberOf! ()
     *
     * @param {object} params Parameters for request
     * @param {string=} params.locale Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.
     * @param {integer=} params.maxResults The maximum number of rows of report data to return.
     * @param {string} params.savedReportId The saved report to retrieve.
     * @param {integer=} params.startIndex Index of the first row of report data to return.
     * @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
     */
    generate(params?: any, options?: MethodOptions): AxiosPromise<Schema$Report>;
    generate(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$Report>, callback?: BodyResponseCallback<Schema$Report>): void;
    /**
     * adexchangeseller.reports.saved.list
     * @desc List all saved reports in this Ad Exchange account.
     * @alias adexchangeseller.reports.saved.list
     * @memberOf! ()
     *
     * @param {object=} params Parameters for request
     * @param {integer=} params.maxResults The maximum number of saved reports to include in the response, used for paging.
     * @param {string=} params.pageToken A continuation token, used to page through saved reports. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
     * @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?: any, options?: MethodOptions): AxiosPromise<Schema$SavedReports>;
    list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$SavedReports>, callback?: BodyResponseCallback<Schema$SavedReports>): void;
}
export declare class Resource$Urlchannels {
    root: Adexchangeseller;
    constructor(root: Adexchangeseller);
    getRoot(): Adexchangeseller;
    /**
     * adexchangeseller.urlchannels.list
     * @desc List all URL channels in the specified ad client for this Ad Exchange
     * account.
     * @alias adexchangeseller.urlchannels.list
     * @memberOf! ()
     *
     * @param {object} params Parameters for request
     * @param {string} params.adClientId Ad client for which to list URL channels.
     * @param {integer=} params.maxResults The maximum number of URL channels to include in the response, used for paging.
     * @param {string=} params.pageToken A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.
     * @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?: any, options?: MethodOptions): AxiosPromise<Schema$UrlChannels>;
    list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$UrlChannels>, callback?: BodyResponseCallback<Schema$UrlChannels>): void;
}
