import { type QueryClient } from "@tanstack/react-query"; import { useActionQuery } from "../use-action.js"; export interface ShareQueryParams { resourceType: string; resourceId: string; } export type ShareQueryKey = readonly [ "action", "list-resource-shares", ShareQueryParams ]; export interface ShareOrgMember { email: string; name?: string | null; role?: string | null; joinedAt?: number | null; } export interface ShareOrgMemberSearchResult { members: ShareOrgMember[]; isLoading: boolean; isLoadingMore: boolean; hasMore: boolean; error: boolean; loadMore: () => void; } export interface OrgMemberPage { members: ShareOrgMember[]; hasMore: boolean; nextOffset: number | null; } export declare const DEFAULT_MEMBER_SUGGESTION_LIMIT = 25; export declare const DEFAULT_MEMBER_SEARCH_DEBOUNCE_MS = 140; export declare function createShareQueryParams(resourceType: string, resourceId: string): ShareQueryParams; export declare function createShareQueryKey(params: ShareQueryParams): ShareQueryKey; export declare function useShareQuery(resourceType: string, resourceId: string): { params: ShareQueryParams; queryKey: ShareQueryKey; query: ReturnType>; queryClient: QueryClient; }; export declare function useShareMutations(): { setVisibility: import("@tanstack/react-query").UseMutationResult, unknown>; share: import("@tanstack/react-query").UseMutationResult, unknown>; unshare: import("@tanstack/react-query").UseMutationResult, unknown>; }; /** * Apply an optimistic change and return the exact cache value to restore if * the action fails. Keeping this snapshot at the mutation boundary prevents a * stale request from restoring a newer optimistic result. */ export declare function optimisticallyUpdateShareCache(queryClient: QueryClient, queryKey: ShareQueryKey, updater: (previous: TData | undefined) => TData | undefined): TData | undefined; export declare function rollbackShareCache(queryClient: QueryClient, queryKey: ShareQueryKey, previous: TData | undefined): void; export declare function useShareMutationGuard(): { begin: () => number; isLatest: (requestId: number) => boolean; }; export declare function fetchOrgMemberPage(options: { search?: string; limit?: number; offset?: number; signal?: AbortSignal; }): Promise; export declare function useShareOrgMemberSearch(query: string, enabled: boolean, options?: { limit?: number; debounceMs?: number; }): ShareOrgMemberSearchResult; export declare function normalizeOrgMembers(value: unknown): ShareOrgMember[]; export declare function mergeOrgMembers(existing: ShareOrgMember[], next: ShareOrgMember[]): ShareOrgMember[]; export declare function extractShareErrorMessage(error: unknown): string; //# sourceMappingURL=share-controller-helpers.d.ts.map