import { ViewContainerRef, OnInit, EventEmitter } from '@angular/core';
import { SharePoint, ICSOMPeoplePickerPrincipal } from "../../../models";
import { UserService } from "../services/UserService";
export interface ICSOMPeoplePickerScope {
    principalType: IPeoplePickerPrincipalType;
    isMulti: string;
    selected: Array<ICSOMPeoplePickerPrincipal>;
    selectedUserFieldValues: Array<SharePoint.IUserFieldValue>;
    disabled: boolean;
    onChanged: () => () => void;
    searchText: string;
    showResult: boolean;
    isFocus: boolean;
    userResult: Array<SharePoint.IPeoplePickerPrincipal>;
    spGroupResult: Array<SharePoint.IPeoplePickerPrincipal>;
    securityGroupResult: Array<SharePoint.IPeoplePickerPrincipal>;
    isLoading: boolean;
    totalResult: number;
    pickerType: IPickerType;
    isDisableAdd: () => boolean;
    searchPeoplePicker: (event: any) => void;
    removePrincipal: (principal: ICSOMPeoplePickerPrincipal) => void;
    addPrincipal: (principal: ICSOMPeoplePickerPrincipal) => void;
    focusOutHandler: () => void;
    focusInHandler: () => void;
    checkIfExistNotFoundUser: () => boolean;
    selectingIndex: number;
}
export declare enum IPeoplePickerPrincipalType {
    none = 0,
    user = 1,
    distributionList = 2,
    securityGroup = 4,
    sharePointGroup = 8,
    all = 15,
    userOrSPGroup = 16,
}
export declare enum IPickerType {
    none = 0,
    userFieldValue = 1,
}
export declare class CSOMPeoplePicker implements OnInit {
    private userService;
    viewContainer: ViewContainerRef;
    isMulti: boolean;
    selected: Array<ICSOMPeoplePickerPrincipal>;
    selectedUserFieldValues: Array<SharePoint.IUserFieldValue>;
    isUserFieldType: boolean;
    principalType: IPeoplePickerPrincipalType;
    disabled: boolean;
    onChanged: Function;
    selectedChange: EventEmitter<Array<ICSOMPeoplePickerPrincipal>>;
    selectedUserFieldValuesChange: EventEmitter<Array<SharePoint.IUserFieldValue>>;
    static templateGuid: string;
    scope: ICSOMPeoplePickerScope;
    private minLengthToSearch;
    constructor(userService: UserService, viewContainer: ViewContainerRef);
    ngOnInit(): void;
    link: () => void;
}
