import { QueryClient, QueryOptions } from '@tanstack/query-core';
import { InferData } from '../../lib/auth-client';
import { OrganizationAuthClient } from './organization-auth-client';
export type InvitationData<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = InferData<TAuthClient["organization"]["getInvitation"]>;
export type InvitationParams<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = Parameters<TAuthClient["organization"]["getInvitation"]>[0];
export type InvitationOptions<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = Omit<QueryOptions<InvitationData<TAuthClient>>, "queryKey"> & InvitationParams<TAuthClient>;
export declare function invitationOptions<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient, userId: string | undefined, params: InvitationParams<TAuthClient>): {
    queryKey: readonly ["auth", "user", string | undefined, "organization", "invitations", "detail", {
        id: string;
    } | null];
    queryFn: ({ signal }: {
        signal: AbortSignal;
    }) => Promise<InferData<TAuthClient["organization"]["getInvitation"]>>;
};
export declare const ensureInvitation: <TAuthClient extends OrganizationAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string | undefined, options: InvitationOptions<TAuthClient>) => Promise<InferData<TAuthClient["organization"]["getInvitation"]>>;
export declare const prefetchInvitation: <TAuthClient extends OrganizationAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string | undefined, options: InvitationOptions<TAuthClient>) => Promise<void>;
export declare const fetchInvitation: <TAuthClient extends OrganizationAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string | undefined, options: InvitationOptions<TAuthClient>) => Promise<InferData<TAuthClient["organization"]["getInvitation"]>>;
