import { MutationOptions } from '@tanstack/query-core';
import { BetterFetchError } from 'better-auth/client';
import { OrganizationAuthClient } from './organization-auth-client';
export type CreateOrganizationParams<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = Omit<Parameters<TAuthClient["organization"]["create"]>[0], "slug"> & {
    /** Omit to generate an available slug from the name. */
    slug?: string;
};
export type CreateOrganizationOptions<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = Omit<ReturnType<typeof createOrganizationOptions<TAuthClient>>, "mutationKey" | "mutationFn" | "meta">;
/**
 * Mutation options factory for creating an organization.
 *
 * @param authClient - The Better Auth organization client.
 * @param userId - The current signed-in user's ID. Used for cache invalidation.
 */
export declare function createOrganizationOptions<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient, userId?: string): MutationOptions<Awaited<ReturnType<(params: CreateOrganizationParams<TAuthClient>) => Promise<NonNullable<{
    id: string;
    name: string;
    slug: string;
    createdAt: Date;
    logo?: string | null | undefined | undefined;
    metadata?: any;
} & {
    metadata: any;
    members: ({
        id: string;
        organizationId: string;
        userId: string;
        role: string;
        createdAt: Date;
    } | undefined)[];
}>>>>, BetterFetchError, Parameters<(params: CreateOrganizationParams<TAuthClient>) => Promise<NonNullable<{
    id: string;
    name: string;
    slug: string;
    createdAt: Date;
    logo?: string | null | undefined | undefined;
    metadata?: any;
} & {
    metadata: any;
    members: ({
        id: string;
        organizationId: string;
        userId: string;
        role: string;
        createdAt: Date;
    } | undefined)[];
}>>>[0]>;
