import { S as SifaApiConfig, A as ApiFetchOptions, s as sifaQueryKeys, C as CreateResult, a as ConfirmEndorsementInput, b as ConfirmEndorsementResult, W as WriteResult } from '../org-h8nhEeAJ.js'; export { c as AccountCheckResult, d as AccountSummary, e as ActivityFeedResponse, f as ActivityItem, g as ActivityItemLinkHealth, h as ActivityTeaserResponse, i as AdminReviewQueues, j as ApiError, k as AppRegistryEntry, B as BulkHideProfileItemInput, l as CastRoadmapVoteResult, m as CheckAppAccountOptions, n as ConfirmationInput, o as ConfirmationSubjectInput, p as CreateExternalAccountResult, D as DeleteAccountResult, E as EndorsementInput, q as ExternalAccountInput, F as FeatureAllowlistResponse, r as FeaturedProfile, t as FetchAccountsOptions, u as FetchActivityFeedOptions, v as FetchActivityTeaserOptions, w as FetchFollowListOptions, x as FetchFollowProfilePageOptions, y as FetchFollowingFeedOptions, z as FetchHiddenAppsOptions, G as FetchMyGithubPullRequestsOptions, H as FetchMyRoadmapVotesOptions, I as FetchReactionStatusOptions, J as FetchSuggestionsOptions, K as FilterOptions, L as FollowListPage, M as FollowProfile, N as FollowProfilePageResponse, O as FollowUserResult, P as FollowingResponse, Q as GetAdminReviewQueuesOptions, R as GithubPullRequest, T as GivenConfirmation, U as HIDDEN_ITEM_SOURCES, V as HIDDEN_ITEM_TYPES, X as HeatmapDay, Y as HeatmapResponse, Z as HiddenApp, _ as HiddenItemSource, $ as HiddenItemType, a0 as HideProfileItemInput, a1 as ListFeatureAllowlistOptions, a2 as MyGithubPullRequestsResponse, a3 as OrgClaimBinding, a4 as OrgClaimResult, a5 as OrgDomainChallengeResult, a6 as OrgDomainVerifyResult, a7 as OrgNotificationEmailAddResult, a8 as OrgNotificationEmailRemoveResult, a9 as OrgProfileEcho, aa as OrgProfileUpdateResult, ab as PdsWipeOutcome, ac as PendingConfirmation, ad as PendingConfirmationsPage, ae as ProfileIndustryInput, af as ProfileLocationAddress, ag as ProfileLocationInput, ah as ProfileSearchResult, ai as ProfileSelfLocation, aj as QUOTED_POSTS_BATCH_MAX, ak as QuotedPostAuthor, al as QuotedPostImage, am as QuotedPostResult, an as QuotedPostView, ao as ReactionError, ap as ReactionResult, aq as ReactionStatus, ar as RefreshOrcidPublicationsResult, as as RefreshPdsResult, at as RepoDeleteInput, au as ResetProfileResult, av as ResolveQuotedPostsOptions, aw as RoadmapVoteError, ax as RoadmapVoteResult, ay as RoadmapVoter, az as RoadmapVotesResponse, aA as SearchFilters, aB as SearchResponse, aC as SifaQueryKey, aD as SimilarProfile, aE as SkillSearchResult, aF as StatsResponse, aG as SubCategoryBulkResult, aH as SuggestionProfile, aI as SuggestionsResponse, aJ as UpdateProfileOverrideInput, aK as UpdateProfileSelfInput, aL as UploadAvatarResult, aM as UploadPronunciationAudioResult, aN as VerifyExternalAccountResult, aO as WipePreview, aP as addFeatureAllowlist, aQ as addOrgNotificationEmail, aR as apiFetch, aS as apiFetchOrNull, aT as apiWrite, aU as apiWriteCreate, aV as bulkHideProfileItems, aW as bulkHideStandardPublications, aX as bulkUnhideProfileItems, aY as bulkUnhideStandardPublications, aZ as castRoadmapVote, a_ as checkAppAccount, a$ as confirmEndorsement, b0 as createConfirmation, b1 as createEndorsement, b2 as createExternalAccount, b3 as createProfileLocation, b4 as createReaction, b5 as createSkill, b6 as deleteAccount, b7 as deleteAvatarOverride, b8 as deleteExternalAccount, b9 as deleteNamePronunciationAudio, ba as deleteProfileLocation, bb as deleteReaction, bc as deleteRepoRecords, bd as deleteSkill, be as dismissConfirmation, bf as fetchAccounts, bg as fetchActivityFeed, bh as fetchActivityTeaser, bi as fetchAppsRegistry, bj as fetchExternalAccounts, bk as fetchFeaturedProfile, bl as fetchFollowing, bm as fetchGivenConfirmations, bn as fetchHeatmapData, bo as fetchHiddenApps, bp as fetchMyGithubPullRequests, bq as fetchMyRoadmapVotes, br as fetchPendingConfirmations, bs as fetchReactionStatus, bt as fetchRepoInventory, bu as fetchRoadmapVotes, bv as fetchSearchFilters, bw as fetchSearchProfiles, bx as fetchSimilarProfiles, by as fetchSkillSuggestions, bz as fetchStats, bA as fetchSuggestionCount, bB as fetchSuggestions, bC as fetchWipePreview, bD as followUser, bE as getAdminReviewQueues, bF as getBlueskySuggestions, bG as getFollowers, bH as getFollowing, bI as getFollowingFeed, bJ as getMutuals, bK as hideOrcidPublication, bL as hideProfileItem, bM as hideSifaPublication, bN as hideStandardPublication, bO as listFeatureAllowlist, bP as refreshOrcidPublications, bQ as refreshPds, bR as removeFeatureAllowlist, bS as removeOrgNotificationEmail, bT as repoExportUrl, bU as requestOrgDomainChallenge, bV as resetProfile, bW as resolveQuotedPosts, bX as retractRoadmapVote, bY as revokeConfirmation, bZ as searchSkills, b_ as setExternalAccountPrimary, b$ as submitOrgClaim, c0 as switchAccount, c1 as unfollowUser, c2 as unhideOrcidPublication, c3 as unhideProfileItem, c4 as unhideSifaPublication, c5 as unhideStandardPublication, c6 as unsetExternalAccountPrimary, c7 as updateExternalAccount, c8 as updateOrgProfile, c9 as updateProfileLocation, ca as updateProfileOverride, cb as updateProfileSelf, cc as updateSkill, cd as updateSkillSubCategories, ce as uploadAvatar, cf as uploadNamePronunciationAudio, cg as verifyExternalAccount, ch as verifyOrgDomain } from '../org-h8nhEeAJ.js'; export { A as AddFeatureAllowlistVariables, C as CreateReactionVariables, a as CreateRecordVariables, D as DeleteReactionVariables, b as DeleteRecordVariables, F as FollowVariables, P as PositionSkillLinkVariables, R as RemoveFeatureAllowlistVariables, S as SifaProvider, c as SifaProviderProps, U as UnfollowVariables, d as UpdateEducationVariables, e as UpdateExternalAccountVariables, f as UpdatePositionVariables, g as UpdateProfileLocationVariables, h as UpdateRecordVariables, i as UpdateSkillSubCategoriesVariables, j as UpdateSkillVariables, k as UseEntitySearchOptions, l as UseMyGithubPullRequestsParams, u as useAccounts, m as useActivityFeed, n as useActivityTeaser, o as useAddFeatureAllowlist, p as useAddOrgNotificationEmail, q as useAdminReviewQueues, r as useAppAccountCheck, s as useAppsRegistry, t as useAtFundLink, v as useBlueskySuggestions, w as useBulkHideProfileItems, x as useBulkHideStandardPublications, y as useBulkUnhideProfileItems, z as useBulkUnhideStandardPublications, B as useCanonicalSkillSearch, E as useCastRoadmapVote, G as useCreateConfirmation, H as useCreateEducation, I as useCreateEndorsement, J as useCreateExternalAccount, K as useCreatePosition, L as useCreateProfileLocation, M as useCreateReaction, N as useCreateRecord, O as useCreateSkill, Q as useDebouncedValue, T as useDeleteAccount, V as useDeleteAvatarOverride, W as useDeleteEducation, X as useDeleteExternalAccount, Y as useDeleteNamePronunciationAudio, Z as useDeletePosition, _ as useDeleteProfileLocation, $ as useDeleteReaction, a0 as useDeleteRecord, a1 as useDeleteRepoRecords, a2 as useDeleteSkill, a3 as useDismissConfirmation, a4 as useEndorsementCount, a5 as useEntitySearch, a6 as useExternalAccounts, a7 as useFeatureAllowlist, a8 as useFeaturedProfile, a9 as useFollow, aa as useFollowers, ab as useFollowing, ac as useFollowingFeed, ad as useFollowingList, ae as useGetProfileView, af as useGivenConfirmations, ag as useHeatmapData, ah as useHiddenApps, ai as useHideKeytraceClaim, aj as useHideOrcidPublication, ak as useHideProfileItem, al as useHideSifaPublication, am as useHideStandardPublication, an as useImportSearchEntities, ao as useLinkSkillToPosition, ap as useMintEntityDomain, aq as useMutuals, ar as useMyGithubPullRequests, as as useMyRoadmapVotes, at as useNetworkStreamCount, au as useOrgClaim, av as useOrgDomainChallenge, aw as useOrgDomainVerify, ax as useOrgProfile, ay as usePendingConfirmations, az as useProfile, aA as useReactionStatus, aB as useRefreshOrcidPublications, aC as useRefreshPds, aD as useRemoveFeatureAllowlist, aE as useRemoveOrgNotificationEmail, aF as useRepoInventory, aG as useResetProfile, aH as useResolveEntityDomain, aI as useRetractRoadmapVote, aJ as useRevealMarqueDomain, aK as useRevokeConfirmation, aL as useRoadmapVotes, aM as useSearchFilters, aN as useSearchProfiles, aO as useSelectEntity, aP as useSetExternalAccountPrimary, aQ as useSetPositionPrimary, aR as useSifaConfig, aS as useSimilarProfiles, aT as useSkillSuggestions, aU as useStats, aV as useSuggestionCount, aW as useSuggestions, aX as useUnfollow, aY as useUnhideKeytraceClaim, aZ as useUnhideOrcidPublication, a_ as useUnhideProfileItem, a$ as useUnhideSifaPublication, b0 as useUnhideStandardPublication, b1 as useUnlinkSkillFromPosition, b2 as useUnrevealMarqueDomain, b3 as useUnsetExternalAccountPrimary, b4 as useUnsetPositionPrimary, b5 as useUpdateEducation, b6 as useUpdateExternalAccount, b7 as useUpdateOrgProfile, b8 as useUpdatePosition, b9 as useUpdateProfileLocation, ba as useUpdateProfileOverride, bb as useUpdateProfileSelf, bc as useUpdateRecord, bd as useUpdateSkill, be as useUpdateSkillSubCategories, bf as useUploadAvatar, bg as useUploadNamePronunciationAudio, bh as useVerifyExternalAccount, bi as useWipePreview } from '../use-org-notification-emails-Cz4cuTyg.js'; import { R as ReceivedEndorsementsPage, a as ReciprocityCandidate, D as DismissEndorsementInput, P as PendingEndorsementsPage } from '../network-map-DZjcO7tM.js'; export { F as FetchNetworkStreamCountOptions, N as NetworkMapEdge, b as NetworkMapGenerationJob, c as NetworkMapGraphData, d as NetworkMapNode, e as NetworkMapPendingJob, f as NetworkMapResponse, g as PendingEndorsement, h as ReceivedEndorsement, i as ReciprocitySkill, S as SpeakerCard, j as SpeakerDirectoryFilters, k as SpeakerGroup, l as SpeakersResponse, T as TalkEvent, m as TalkRow, n as TalkSpeaker, o as TalksResponse, p as checkNetworkMapJobStatus, q as createEducation, r as createPosition, s as createRecord, t as deleteEducation, u as deletePosition, v as deleteRecord, w as dismissEndorsement, x as fetchAtFundLink, y as fetchEndorsementCount, z as fetchEntitySearch, A as fetchGetProfileView, B as fetchNetworkMap, C as fetchNetworkStreamCount, E as fetchPendingEndorsements, G as fetchProfile, H as fetchProfileSummary, I as fetchReceivedEndorsements, J as fetchReciprocityCandidate, K as fetchSpeakers, L as fetchTalks, M as hideKeytraceClaim, O as importSearchEntities, Q as initiateNetworkMapGeneration, U as isNetworkMapResponse, V as linkSkillToPosition, W as mintEntityDomain, X as resolveEntityDomain, Y as revealMarqueDomain, Z as selectEntity, _ as setPositionPrimary, $ as unhideKeytraceClaim, a0 as unlinkSkillFromPosition, a1 as unrevealMarqueDomain, a2 as unsetPositionPrimary, a3 as updateEducation, a4 as updatePosition, a5 as updateRecord } from '../network-map-DZjcO7tM.js'; import { C as CoSpeaker, m as ActorCard } from '../index-CTzpbW81.js'; import * as _tanstack_react_query from '@tanstack/react-query'; import { UseQueryOptions, UseMutationOptions } from '@tanstack/react-query'; import { c as AdultContentLabel } from '../types-zjv3qDWz.js'; import '../feed-BMm9Pkew.js'; import 'zod'; import '../org-settings-CZ_tmAYl.js'; import 'react'; import '../profile-summary-Bj_vVxkv.js'; /** * Resolve any atproto handle (or DID) to a profile card, for the co-speaker * picker's "not on Sifa" path. Returns `null` when the identity can't be * resolved. The Sifa AppView resolves the handle to a DID and hydrates a card * (handle, displayName, avatar, and whether they have a claimed Sifa profile). */ declare function fetchResolveActor(config: SifaApiConfig, handleOrDid: string, options?: ApiFetchOptions): Promise; /** * Typeahead over indexed Sifa profiles by partial name or handle, for the * co-speaker, login and search comboboxes. Matches display name and handle only * (prefix + trigram), ranks prefix matches first, and returns actor cards. * Unlike `/api/search/profiles`, a partial of a dotted custom handle resolves * and a partial name surfaces its prefix match rather than an unrelated * account. Returns an empty array on a blank query or a failed request; use * {@link fetchResolveActor} on Enter to reach a handle that is not on Sifa. */ declare function fetchTypeaheadActors(config: SifaApiConfig, query: string, limit?: number, options?: ApiFetchOptions): Promise; /** Confirmed endorsements a DID has received, newest first. */ declare function useReceivedEndorsements(did: string | undefined | null, options?: { limit?: number; } & Omit>, 'queryKey' | 'queryFn'>): _tanstack_react_query.UseQueryResult, Error>; /** * Someone the signed-in user could endorse. `null` when there is nobody left. * * Session-scoped like the pending inbox: the AppView reads the viewer from the * session, so the key takes no DID. Invalidate it after dismissing to pull the * next person in without a reload. */ declare function useReciprocityCandidate(options?: Omit>, 'queryKey' | 'queryFn'>): _tanstack_react_query.UseQueryResult, Error>; /** * Endorsements awaiting the signed-in user's decision. Returns an empty page * when signed out or on error, so callers can render "nothing pending" without * special-casing either. */ declare function usePendingEndorsements(options?: Omit>, 'queryKey' | 'queryFn'>): _tanstack_react_query.UseQueryResult, Error>; /** * Confirm a received endorsement. On success the endorsement leaves the inbox * and starts displaying, so both the inbox and the subject's own profile and * count caches are invalidated. * * `subjectHandleOrDid` is the confirming user (the endorsement's subject); * pass `null` to skip profile invalidation. */ declare function useConfirmEndorsement(subjectHandleOrDid: string | null, options?: Omit, 'mutationFn'>): _tanstack_react_query.UseMutationResult; /** * Dismiss a received endorsement. Only the inbox is invalidated -- a dismissal * changes nothing that displays anywhere, so no profile cache is affected. */ declare function useDismissEndorsement(options?: Omit, 'mutationFn'>): _tanstack_react_query.UseMutationResult; /** * Visibility values defined by `app.bsky.actor.defs#contentLabelPref`. * `null` means the viewer has no explicit pref for that label — call sites * decide a default (Sifa hides by default; Bluesky's own client defaults * to `warn` for adult labels on new accounts). */ type BskyContentLabelVisibility = 'ignore' | 'warn' | 'hide'; type BskyContentLabelPrefs = Record; interface BskyContentLabelPrefsResponse { contentLabels: BskyContentLabelPrefs; } interface BskyPrefsScopeError { error: 'InsufficientScope'; message?: string; needsScope: 'bsky-preferences'; } /** * Read the viewer's Bluesky content-label preferences via sifa-api's * proxy. Returns `null` when the viewer's OAuth grant doesn't include the * read scope — sifa-web treats this as "needs scope upgrade" and triggers * a granular re-auth. * * Any other failure (network, upstream PDS error) also resolves to `null` * so callers always have a safe default (hide everything). */ declare function fetchBskyContentLabelPrefs(config: SifaApiConfig, options?: ApiFetchOptions & { onNeedsScope?: () => void; }): Promise; interface UpdateBskyContentLabelPrefsBody { contentLabels: Array<{ label: AdultContentLabel; visibility: BskyContentLabelVisibility; }>; } /** * Update one or more of the viewer's adult content-label preferences. The * sifa-api endpoint merges these into the viewer's existing prefs and * writes the whole array back to their PDS — entries we don't touch are * preserved. * * On insufficient-scope returns `{ success: false, error: ..., needsScope }` * so the caller can drive a granular re-auth. */ declare function updateBskyContentLabelPrefs(config: SifaApiConfig, body: UpdateBskyContentLabelPrefsBody): Promise; /** * Compute the effective visibility for a Bluesky adult label. * * - Anonymous viewer (no prefs): always `hide` — matches Bluesky's logged-out * behaviour; sifa-web won't even render a Show button. * - Authenticated viewer with no explicit pref: `hide` by default, so Sifa * stays safe-by-default and matches the gate that ships in sifa-web#1240 * today. * - Authenticated viewer with an explicit pref: use it directly. * * Returns `'ignore'` to mean "render media inline", `'warn'` and `'hide'` * both mean "placeholder card + reveal button" — Sifa doesn't distinguish * the two today, but keeping them separate matches the lexicon and lets the * UI evolve (e.g. blur for warn, full hide for hide) without an SDK change. */ declare function effectiveContentVisibility(label: AdultContentLabel, prefs: BskyContentLabelPrefs | null, isAuthenticated: boolean): BskyContentLabelVisibility; /** * Whether a labeled item should render its media inline. Convenience over * `effectiveContentVisibility` for the common "any adult label hides * everything" case in BlueskyPostCard. */ declare function shouldGateAdultMedia(labels: ReadonlyArray<{ val: string; neg?: boolean; }> | undefined, prefs: BskyContentLabelPrefs | null, isAuthenticated: boolean): boolean; /** * Read the viewer's Bluesky adult content-label preferences. The fetcher * returns `null` when the OAuth grant doesn't include the read scope * (sifa-api responds 403 with `needsScope: 'bsky-preferences'`); call * sites should treat `null` as "needs scope upgrade" and route through * the granular re-auth flow before retrying. * * Pass `enabled: false` for anonymous viewers — TanStack will skip the * fetch entirely and the gate will fall through to its default-hide path. */ declare function useBskyContentLabelPrefs(options?: Omit>, 'queryKey' | 'queryFn'>): _tanstack_react_query.UseQueryResult, Error>; /** * Mutation that updates one or more adult-content prefs on the viewer's * PDS via sifa-api, then writes the merged result back into the prefs * cache so the next render reflects the change without a refetch. */ declare function useUpdateBskyContentLabelPrefs(): _tanstack_react_query.UseMutationResult; export { ApiFetchOptions, type BskyContentLabelPrefs, type BskyContentLabelPrefsResponse, type BskyContentLabelVisibility, type BskyPrefsScopeError, ConfirmEndorsementInput, CreateResult, DismissEndorsementInput, PendingEndorsementsPage, ReceivedEndorsementsPage, ReciprocityCandidate, SifaApiConfig, type UpdateBskyContentLabelPrefsBody, WriteResult, effectiveContentVisibility, fetchBskyContentLabelPrefs, fetchResolveActor, fetchTypeaheadActors, shouldGateAdultMedia, sifaQueryKeys, updateBskyContentLabelPrefs, useBskyContentLabelPrefs, useConfirmEndorsement, useDismissEndorsement, usePendingEndorsements, useReceivedEndorsements, useReciprocityCandidate, useUpdateBskyContentLabelPrefs };