import { AdwordsOperartionService, SoapService } from '../../core';
import { ISelector } from '../../../types/adwords';
import { ICampaignCriterionPage } from './CampaignCriterionPage';
import { ICampaignCriterionOperation } from './CampaignCriterionOperation';
import { ICampaignCriterionReturnValue } from './CampaignCriterionReturnValue';
import { Criterion } from './enum/Criterion';
import { ICampaignCriterion } from './CampaignCriterion';
import { ILocation, IProximity } from './Criterion';
interface ICampaignCriterionServiceOpts {
    soapService: SoapService;
}
declare class CampaignCriterionService extends AdwordsOperartionService {
    static setType(campaignCriterion: ICampaignCriterion): ICampaignCriterion;
    static isProximity(criterion: ILocation | IProximity): criterion is IProximity;
    static isLocation(criterion: ILocation | IProximity): criterion is ILocation;
    private static readonly selectorFields;
    private soapService;
    constructor(options: ICampaignCriterionServiceOpts);
    getAllByCampaignIds(campaignIds: string[]): Promise<ICampaignCriterionPage | undefined>;
    getAllLocationCriterionByCampaignIds(campaignIds: string[]): Promise<ICampaignCriterionPage | undefined>;
    /**
     * add location to campaign, location criterion id can be found here:
     * https://docs.google.com/spreadsheets/d/1FIB1WP3OHbjoe0AQ8oNuzY--NnHeuen-W7EWY6uupnA/edit#gid=1905266229
     *
     *
     * @author dulin
     * @param {ICampaignCriterion[]} campaignCriterionOperations
     * @returns
     * @memberof CampaignCriterionService
     */
    add(campaignCriterionOperations: ICampaignCriterion[]): Promise<ICampaignCriterionReturnValue>;
    protected mutate<Operaiton = ICampaignCriterionOperation, Rval = ICampaignCriterionReturnValue>(opertions: Operaiton[]): Promise<Rval>;
    protected get<ServiceSelector = ISelector, Rval = ICampaignCriterionPage>(serviceSelector: ServiceSelector): Promise<Rval | undefined>;
}
export { CampaignCriterionService, ICampaignCriterion, ICampaignCriterionPage, ICampaignCriterionOperation, ICampaignCriterionReturnValue, Criterion, };
export * from './Address';
export * from './enum/CampaignCriterion';
export * from './enum/Criterion';
export * from './enum/LocationTargetingStatus';
export * from './enum/Proximity';
export * from './GeoPoint';
