import { OnInit, EventEmitter, OnChanges } from '@angular/core';
import { Shared, ITargetingDefinition, ITargetingValue } from "../../../models";
import { LocalizationService } from "../services/LocalizationService";
import { TargetingService } from "../services/TargetingService";
export interface ITargetingPickerScope {
    mode: string;
    targetingDefinitionId: string;
    targetingDefinition: ITargetingDefinition;
    hasTargeting: boolean;
    targetingValues: {
        [filterId: string]: ITargetingValue;
    };
    canSetTargetingValue: boolean;
    groupMembershipLookupValues: {
        [id: string]: Array<Shared.ILookupValue>;
    };
    isLoadingTargetingSettings: boolean;
    lookupTargetingDefinitions: Array<ITargetingDefinition>;
    selectTargetingDefinition: (selectedItem: ITargetingDefinition) => void;
    onHasTargetingChange: () => void;
    clearWatchTargetingValue: any;
}
export declare class TargetingPicker implements OnInit, OnChanges {
    private targetingService;
    private localizationService;
    mode: string;
    targetingDefinitionId: string;
    targetingDefinition: ITargetingDefinition;
    hasTargeting: boolean;
    targetingValues: any;
    onDataInitialized: Function;
    targetingDefinitionIdChange: EventEmitter<string>;
    targetingValuesChange: EventEmitter<any>;
    targetingDefinitionChange: EventEmitter<ITargetingDefinition>;
    hasTargetingChange: EventEmitter<boolean>;
    static templateGuid: string;
    scope: ITargetingPickerScope;
    constructor(targetingService: TargetingService, localizationService: LocalizationService);
    ngOnInit(): void;
    ngOnChanges(changes: any): void;
    link: () => void;
    private onTargetingValuesChange;
    private initTargetingDefinition;
    private initDataBasedOnTargetingDefinition;
    private selectTargetingDefinition;
    private loadTargetingDefinitions;
    private setGroupMembershipLookupValues;
    private onHasTargetingChange;
    private setTargetingPlainValue;
    private initDefaultValues;
    private getPlainValue;
}
