///
import { IReadonlyObservableArray } from '../../Core/Observable';
import { ISelectedTagProps } from '../../TagPicker';
import { IIdentity, IPeoplePickerProvider } from "../IdentityPickerDropdown/SharedIdentityPicker.Props";
export interface IIdentityPickerProps {
/**
* Aria label
*/
ariaLabel?: string;
/**
* Id of another element which labels this one for screen reader users.
*/
ariaLabelledBy?: string;
/**
* Optional CSS class name to add to IdentityPicker
*/
className?: string;
/**
* Custom converter to go from identity to tag props
*/
convertItemToPill?: (person: IIdentity, index: number) => ISelectedTagProps;
/**
* String to display when there are no results found.
*/
noResultsFoundText?: string;
/**
* Called on focus away
* @param text text value of the picker before focus away
*/
onBlur?: (text?: string) => void;
/**
* Called when the user clicks or enters on a suggested person
*/
onIdentityAdded: (tag: IIdentity) => void;
/**
* Called when the user removes multiple identities by selecting them and hitting delete
*/
onIdentitiesRemoved: (identities: IIdentity[]) => void;
/**
* Called when the user removes a previously selected person
*/
onIdentityRemoved: (tag: IIdentity) => void;
/**
* This prop specifies a callback where, if this is specified, unresolved emails are allowed to be chosen.
* This allows unresolved emails to be passed into the onIdentityAdded callback and they have the following properties
* { entityId: emailAddress, originDirectory: "email", entityType: IdentityType.Custom}
*/
onResolveEntity?: (email: string, identity: IIdentity | null) => void;
/**
* Provider to handle how to filter the suggested people from a filter.
*/
pickerProvider: IPeoplePickerProvider;
/**
* String to show when there is no input in the text field.
*/
placeholderText?: string;
/**
* Render a suggestion item for a custom identity.
*/
renderCustomIdentitySuggestion?: (identity: IIdentity) => JSX.Element;
/**
* Identity values of the selected identities This prop is 100% controlled
* by the consumer. onIdentityAdded/onIdentityRemoved/onIdentitiesRemoved must also be implemented in order to
* work properly. If this value is a array of IIDentities, the prop must be
* updated to cause the PeoplePicker to re-render. If this value is an
* ObservableValue, then changing its value will cause the PeoplePicker
* to re-render.
*/
selectedIdentities: IReadonlyObservableArray | IIdentity[];
/**
* Aria label of the suggestions container
*/
suggestionsContainerAriaLabel?: string;
}