import { SoapService, AdwordsOperartionService } from '../../core';
import { ISelector } from './Selector';
import { IAdGroupPage } from './AdGroupPage';
import { IAdGroupOperation } from './AdGroupOperation';
import { IAdGroupReturnValue } from './AdGroupReturnValue';
import { IAdGroup } from './AdGroup';
import { ITargetingSetting, IExplorerAutoOptimizerSetting } from './Setting';
interface IAdGroupServiceOpts {
    soapService: SoapService;
}
/**
 * https://developers.google.com/adwords/api/docs/reference/v201809/AdGroupService
 *
 * @author dulin
 * @class AdGroupService
 * @extends {AdwordsOperartionService}
 */
declare class AdGroupService extends AdwordsOperartionService {
    static isTargetingSetting(setting: ITargetingSetting | IExplorerAutoOptimizerSetting): setting is ITargetingSetting;
    static isExplorerAutoOptimizerSetting(setting: ITargetingSetting | IExplorerAutoOptimizerSetting): setting is IExplorerAutoOptimizerSetting;
    /**
     * https://developers.google.com/adwords/api/docs/appendix/selectorfields?hl=zh-cn#v201809-AdGroupService
     *
     * @private
     * @static
     * @memberof AdGroupService
     */
    private static readonly selectorFields;
    private soapService;
    constructor(options: IAdGroupServiceOpts);
    getAll(): Promise<IAdGroupPage | undefined>;
    /**
     * get ad groups by campaign ids
     *
     * @author dulin
     * @param {string[]} campaignIds
     * @returns
     * @memberof AdGroupService
     */
    getAllByCampaignIds(campaignIds: string[]): Promise<IAdGroupPage | undefined>;
    add(adGroup: IAdGroup): Promise<IAdGroupReturnValue>;
    protected get<ServiceSelector = ISelector, Rval = IAdGroupPage>(serviceSelector: ServiceSelector): Promise<Rval | undefined>;
    protected mutate<Operation = IAdGroupOperation, Rval = IAdGroupReturnValue>(operations: Operation[]): Promise<Rval>;
    private setType;
}
export { AdGroupService, IAdGroupServiceOpts, IAdGroupPage, IAdGroupOperation, IAdGroupReturnValue, IAdGroup };
