import { ReactElement } from 'react'; import { UserContactType, SuggestedCollaborator } from '@box/user-selector'; import { CollaborationRole, Collaborator, Configuration, ContactService, EventService, Item, SharedLink, SharingService, User, VariantType } from './types'; export interface UnifiedShareModalProps { /** * The trigger component to open the Unified Share Modal. * * If not provided, the Unified Share Modal is open by default. */ children?: ReactElement; /** * The custom component to render next to the collaboration roles. */ collaborationAccess?: ReactElement; /** * The inline notice component(s) to render in the collaboration section. */ collaborationNotices?: ReactElement | ReactElement[]; /** * The available roles for inviting new collaborators. */ collaborationRoles?: CollaborationRole[]; /** * The existing collaborators on the shared item. */ collaborators?: Collaborator[]; /** * The options for configuring features in the Unified Share Modal. */ config?: Configuration; /** * The service for fetching users in the Unified Share Modal. */ contactService?: ContactService; /** * The current user collaborating or sharing the item. */ currentUser?: User; /** * The service for subscribing to events in the Unified Share Modal. */ eventService?: EventService; /** * The initially selected users when the Unified Share Modal is opened. */ initialContacts?: UserContactType[]; /** * The inline notice component(s) to render in the collaboration section when the invitation form is expanded. */ invitationFormNotices?: ReactElement | ReactElement[]; /** * The controlled fetching state of the Unified Share Modal. * * If not provided, the fetching state is handled internally. */ isFetching?: boolean; /** * The controlled open state of the Unified Share Modal. * * If not provided, the open state is handled internally. */ isOpen?: boolean; /** * The controlled submitting state of the Unified Share Modal. * * If not provided, the submitting state is handled internally. */ isSubmitting?: boolean; /** * The item to collaborate and share with users. */ item: Item; /** * The event handler called when the Unified Share Modal is opened. */ onLoad?: () => Promise; /** * The event handler called when the open state of the Unified Share Modal changes. */ onOpenChange?: (open: boolean) => void; /** * The shared link for sharing the item with users. */ sharedLink?: SharedLink; /** * The inline notice component(s) to render in the shared link section. */ sharedLinkNotices?: ReactElement | ReactElement[]; /** * The service for managing the collaborations and shared link of the item. */ sharingService?: SharingService; /** * Candidate collaborators to prioritize in invite dropdown results. */ suggestedCollaborators?: SuggestedCollaborator[]; /** * The variant of the Unified Share Modal. * * If the value is `desktop`, the Unified Share Modal remains open by default. * * @default 'modal' */ variant?: VariantType; } export declare function UnifiedShareModal({ children, collaborationAccess, collaborationNotices, collaborationRoles, collaborators, config, contactService, currentUser, eventService, initialContacts, invitationFormNotices, isFetching, isOpen: isControlledOpen, isSubmitting, item, onLoad, onOpenChange, sharedLink, sharedLinkNotices, sharingService, suggestedCollaborators, variant, }: UnifiedShareModalProps): import("react/jsx-runtime").JSX.Element;