import type { useActionQuery } from "../use-action.js"; export type ShareButtonVisibility = "private" | "org" | "public"; export type ShareButtonRole = "viewer" | "editor" | "admin"; export interface ShareButtonShare { id: string; principalType: "user" | "org"; principalId: string; displayName?: string | null; role: ShareButtonRole; } export interface ShareButtonSharesResponse { ownerEmail: string | null; orgId: string | null; visibility: ShareButtonVisibility | null; role?: "owner" | ShareButtonRole; shares: ShareButtonShare[]; policy?: { allowPublic: boolean; requireOrgMemberForUserShares: boolean; }; } export interface ShareButtonOrgMember { email: string; name?: string | null; role?: string | null; joinedAt?: number | null; } export interface ShareButtonOrgMemberSearch { members: ShareButtonOrgMember[]; isLoading: boolean; isLoadingMore: boolean; hasMore: boolean; error: boolean; loadMore: () => void; } export interface ShareButtonControllerOptions { resourceType: string; resourceId: string; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; shareTabs?: { defaultValue?: string; onValueChange?: (value: string) => void; }; shareUrl?: string; hideInSearchControl?: { checked: boolean; pending?: boolean; onCheckedChange: (checked: boolean) => void | Promise; }; } export interface ShareButtonController { open: boolean; handleOpenChange: (open: boolean) => void; activeShareTab: string; handleShareTabChange: (value: string) => void; inviteEmail: string; setInviteEmail: (email: string) => void; sharesQuery: ReturnType>; visibilityOverride: ShareButtonVisibility | null; handleVisibilityChange: (visibility: ShareButtonVisibility) => Promise; data: ShareButtonSharesResponse | undefined; policy: { allowPublic: boolean; requireOrgMemberForUserShares: boolean; }; visibility: ShareButtonVisibility; triggerVisibility: ShareButtonVisibility | null; canManage: boolean; role: ShareButtonRole; setRole: (role: ShareButtonRole) => void; notifyPeople: boolean; setNotifyPeople: (notify: boolean) => void; shareError: string | null; setShareError: (error: string | null) => void; suggestionsOpen: boolean; setSuggestionsOpen: (open: boolean) => void; inFlight: Set; memberSearch: ShareButtonOrgMemberSearch; memberSuggestions: ShareButtonOrgMember[]; knownMembers: ShareButtonOrgMember[]; shares: ShareButtonShare[]; handleVisibility: (visibility: ShareButtonVisibility) => void; handleHideInSearch: () => void; handleAdd: () => void; handleChangeRole: (share: ShareButtonShare, role: ShareButtonRole) => void; handleRemove: (share: ShareButtonShare) => void; } export declare function useShareButtonController(options: ShareButtonControllerOptions): ShareButtonController; //# sourceMappingURL=useShareButtonController.d.ts.map