<!-- API Report Version: 2.3 -->

## API Report File for "@atlaskit/smart-user-picker"

> Do not edit this file. This report is auto-generated using
> [API Extractor](https://api-extractor.com/).
> [Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)

### Table of contents

- [Main Entry Types](#main-entry-types)
- [Peer Dependencies](#peer-dependencies)

### Main Entry Types

<!--SECTION START: Main Entry Types-->

```ts
import { ActionTypes } from '@atlaskit/user-picker';
import { Appearance } from '@atlaskit/user-picker';
import { AtlasKitSelectChange } from '@atlaskit/user-picker';
import { AtlaskitSelectValue } from '@atlaskit/user-picker';
import { DefaultValue } from '@atlaskit/user-picker';
import { Email } from '@atlaskit/user-picker';
import { EmailType } from '@atlaskit/user-picker';
import { EmailValidationResponse } from '@atlaskit/user-picker';
import { EmailValidator } from '@atlaskit/user-picker';
import { ExternalUser } from '@atlaskit/user-picker';
import { Group } from '@atlaskit/user-picker';
import { GroupHighlight } from '@atlaskit/user-picker';
import { GroupType } from '@atlaskit/user-picker';
import { HighlightRange } from '@atlaskit/user-picker';
import { InputActionTypes } from '@atlaskit/user-picker';
import { IntlShape } from 'react-intl-next';
import { isEmail } from '@atlaskit/user-picker';
import { isTeam } from '@atlaskit/user-picker';
import { isUser } from '@atlaskit/user-picker';
import { isValidEmail } from '@atlaskit/user-picker';
import { LoadOptions } from '@atlaskit/user-picker';
import { LozengeProps } from '@atlaskit/user-picker';
import { OnChange } from '@atlaskit/user-picker';
import { OnInputChange } from '@atlaskit/user-picker';
import { OnOption } from '@atlaskit/user-picker';
import { OnPicker } from '@atlaskit/user-picker';
import { Option as Option_2 } from '@atlaskit/user-picker';
import { OptionData } from '@atlaskit/user-picker';
import { OptionIdentifier } from '@atlaskit/user-picker';
import { PopupUserPickerProps } from '@atlaskit/user-picker';
import { Promisable } from '@atlaskit/user-picker';
import { default as React_2 } from 'react';
import { Target } from '@atlaskit/user-picker';
import { Team } from '@atlaskit/user-picker';
import { TeamHighlight } from '@atlaskit/user-picker';
import { TeamMember } from '@atlaskit/user-picker';
import { TeamType } from '@atlaskit/user-picker';
import { User } from '@atlaskit/user-picker';
import { UserHighlight } from '@atlaskit/user-picker';
import { UserPickerProps } from '@atlaskit/user-picker';
import { UserPickerState } from '@atlaskit/user-picker';
import { UserSource } from '@atlaskit/user-picker';
import { UserType } from '@atlaskit/user-picker';
import { Value } from '@atlaskit/user-picker';
import { WithAnalyticsEventsProps } from '@atlaskit/analytics-next';

export { ActionTypes };

export { Appearance };

export { AtlasKitSelectChange };

export { AtlaskitSelectValue };

// @public (undocumented)
interface BitbucketAttributes {
	emailDomain?: string;
	isPublicRepo?: boolean;
	workspaceIds?: string[];
}

// @public (undocumented)
interface ConfluenceAttributes {
	isEntitledConfluenceExternalCollaborator?: boolean;
}

// @public (undocumented)
interface Context {
	// (undocumented)
	childObjectId?: string;
	// (undocumented)
	containerId?: string;
	// (undocumented)
	contextType: string;
	// (undocumented)
	objectId?: string;
	// (undocumented)
	organizationId?: string;
	// (undocumented)
	principalId?: string;
	// (undocumented)
	productAttributes?: ProductAttributes;
	// (undocumented)
	productKey: string;
	// (undocumented)
	sessionId?: string;
	// (undocumented)
	siteId: string;
}

export { DefaultValue };

export { Email };

export { EmailType };

export { EmailValidationResponse };

export { EmailValidator };

export { ExternalUser };

// @public (undocumented)
type FilterOptions = (options: OptionData[], query: string) => OptionData[];

// @public (undocumented)
export const getUserRecommendations: (
	request: RecommendationRequest,
	intl: IntlShape,
) => Promise<OptionData[]>;

export { Group };

export { GroupHighlight };

export { GroupType };

export { HighlightRange };

// @public (undocumented)
export function hydrateDefaultValues(
	baseUrl: string | undefined,
	value: DefaultValue,
	productKey: string,
): Promise<DefaultValue>;

export { InputActionTypes };

export { isEmail };

export { isTeam };

export { isUser };

export { isValidEmail };

export { LoadOptions };

export { LozengeProps };

export { OnChange };

// @public (undocumented)
type OnEmpty = (query: string) => Promise<OptionData[]>;

// @public (undocumented)
type OnError = (error: any, request: RecommendationRequest) => Promise<OptionData[]> | void;

export { OnInputChange };

export { OnOption };

export { OnPicker };

// @public (undocumented)
type OnValueError = (error: any, defaultValue: DefaultValue) => Promise<OptionData[]> | void;

export { Option_2 as Option };

export { OptionData };

export { OptionIdentifier };

export { PopupUserPickerProps };

// @public (undocumented)
type ProductAttributes = BitbucketAttributes | ConfluenceAttributes;

export { Promisable };

// @public (undocumented)
export interface Props extends SmartProps, UserPickerProps, WithAnalyticsEventsProps {
	defaultValue?: DefaultValue;
	fieldId: string;
}

// @public (undocumented)
export interface RecommendationRequest {
	// (undocumented)
	baseUrl?: string;
	// (undocumented)
	context: Context;
	// (undocumented)
	includeGroups?: boolean;
	// (undocumented)
	includeTeams?: boolean;
	// (undocumented)
	includeUsers?: boolean;
	// (undocumented)
	maxNumberOfResults: number;
	// (undocumented)
	query?: string;
	// (undocumented)
	searchQueryFilter?: string;
}

// @public (undocumented)
interface SmartProps {
	baseUrl?: string;
	bootstrapOptions?: OptionData[];
	childObjectId?: string;
	containerId?: string;
	debounceTime?: number;
	filterOptions?: FilterOptions;
	includeGroups?: boolean;
	includeTeams?: boolean;
	includeUsers?: boolean;
	objectId?: string;
	onEmpty?: OnEmpty;
	onError?: OnError;
	onValueError?: OnValueError;
	orgId?: string;
	prefetch?: boolean;
	principalId?: string;
	productAttributes?: ProductAttributes;
	productKey: string;
	searchQueryFilter?: string;
	siteId: string;
}

// @public (undocumented)
const SmartUserPickerWithIntlProvider: React_2.FunctionComponent<Props>;
export default SmartUserPickerWithIntlProvider;

// @public (undocumented)
export interface State {
	// (undocumented)
	bootstrapOptions: OptionData[];
	// (undocumented)
	closed: boolean;
	// (undocumented)
	defaultValue?: DefaultValue;
	// (undocumented)
	loading: boolean;
	// (undocumented)
	query: string;
	// (undocumented)
	sessionId?: string;
	// (undocumented)
	users: OptionData[];
}

export { Target };

export { Team };

export { TeamHighlight };

export { TeamMember };

export { TeamType };

export { User };

export { UserHighlight };

export { UserPickerProps };

export { UserPickerState };

export { UserSource };

export { UserType };

export { Value };

// (No @packageDocumentation comment for this package)
```

<!--SECTION END: Main Entry Types-->

### Peer Dependencies

<!--SECTION START: Peer Dependencies-->

```json
{
	"react": "^16.8.0",
	"react-dom": "^16.8.0"
}
```

<!--SECTION END: Peer Dependencies-->
