import * as _better_auth_passkey from '@better-auth/passkey';
import { Passkey } from '@better-auth/passkey';
import * as _better_fetch_fetch from '@better-fetch/fetch';
import { BetterFetchError } from '@better-fetch/fetch';
import * as better_auth from 'better-auth';
import { Account, User } from 'better-auth';
import { Member } from 'better-auth/plugins/organization';
import * as better_auth_react from 'better-auth/react';
import { createAuthClient } from 'better-auth/react';
import * as better_auth_client_plugins from 'better-auth/client/plugins';
import * as _better_auth_passkey_client from '@better-auth/passkey/client';
import * as better_auth_plugins from 'better-auth/plugins';

type Refetch = () => Promise<unknown> | unknown;

type AnyAuthClient = Omit<ReturnType<typeof createAuthClient>, "signUp" | "getSession">;

type ApiKey = {
    id: string;
    name?: string | null;
    start?: string | null;
    expiresAt?: Date | null;
    createdAt: Date;
    updatedAt: Date;
    metadata?: Record<string, unknown> | null;
};

declare const authClient: {
    useListPasskeys: () => {
        data: _better_auth_passkey.Passkey[] | null;
        error: null | _better_fetch_fetch.BetterFetchError;
        isPending: boolean;
        isRefetching: boolean;
        refetch: (queryParams?: {
            query?: better_auth.SessionQueryParams;
        } | undefined) => Promise<void>;
    };
} & {} & {
    useActiveOrganization: () => {
        data: better_auth.Prettify<{
            id: string;
            name: string;
            slug: string;
            createdAt: Date;
            logo?: string | null | undefined | undefined;
            metadata?: any;
        } & {
            members: {
                id: string;
                organizationId: string;
                role: "member" | "admin" | "owner";
                createdAt: Date;
                userId: string;
                teamId?: string | undefined | undefined;
                user: {
                    id: string;
                    email: string;
                    name: string;
                    image?: string | undefined;
                };
            }[];
            invitations: {
                id: string;
                organizationId: string;
                email: string;
                role: "member" | "admin" | "owner";
                status: better_auth_plugins.InvitationStatus;
                inviterId: string;
                expiresAt: Date;
                createdAt: Date;
                teamId?: string | undefined | undefined;
            }[];
        }> | null;
        error: null | _better_fetch_fetch.BetterFetchError;
        isPending: boolean;
        isRefetching: boolean;
        refetch: (queryParams?: {
            query?: better_auth.SessionQueryParams;
        } | undefined) => Promise<void>;
    };
    useListOrganizations: () => {
        data: {
            id: string;
            name: string;
            slug: string;
            createdAt: Date;
            logo?: string | null | undefined | undefined;
            metadata?: any;
        }[] | null;
        error: null | _better_fetch_fetch.BetterFetchError;
        isPending: boolean;
        isRefetching: boolean;
        refetch: (queryParams?: {
            query?: better_auth.SessionQueryParams;
        } | undefined) => Promise<void>;
    };
    useActiveMember: () => {
        data: {
            id: string;
            organizationId: string;
            userId: string;
            role: string;
            createdAt: Date;
        } | null;
        error: null | _better_fetch_fetch.BetterFetchError;
        isPending: boolean;
        isRefetching: boolean;
        refetch: (queryParams?: {
            query?: better_auth.SessionQueryParams;
        } | undefined) => Promise<void>;
    };
    useActiveMemberRole: () => {
        data: {
            role: string;
        } | null;
        error: null | _better_fetch_fetch.BetterFetchError;
        isPending: boolean;
        isRefetching: boolean;
        refetch: (queryParams?: {
            query?: better_auth.SessionQueryParams;
        } | undefined) => Promise<void>;
    };
} & {
    signIn: {
        social: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            provider: "line" | "github" | "apple" | "atlassian" | "cognito" | "discord" | "facebook" | "figma" | "microsoft" | "google" | "huggingface" | "slack" | "spotify" | "twitch" | "twitter" | "dropbox" | "kick" | "linear" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "salesforce" | "vk" | "zoom" | "notion" | "kakao" | "naver" | "paybin" | "paypal" | "polar" | "vercel" | (string & {});
            callbackURL?: string | undefined;
            newUserCallbackURL?: string | undefined;
            errorCallbackURL?: string | undefined;
            disableRedirect?: boolean | undefined;
            idToken?: {
                token: string;
                nonce?: string | undefined;
                accessToken?: string | undefined;
                refreshToken?: string | undefined;
                expiresAt?: number | undefined;
            } | undefined;
            scopes?: string[] | undefined;
            requestSignUp?: boolean | undefined;
            loginHint?: string | undefined;
            additionalData?: Record<string, any> | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            provider: "line" | "github" | "apple" | "atlassian" | "cognito" | "discord" | "facebook" | "figma" | "microsoft" | "google" | "huggingface" | "slack" | "spotify" | "twitch" | "twitter" | "dropbox" | "kick" | "linear" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "salesforce" | "vk" | "zoom" | "notion" | "kakao" | "naver" | "paybin" | "paypal" | "polar" | "vercel" | (string & {});
            callbackURL?: string | undefined;
            newUserCallbackURL?: string | undefined;
            errorCallbackURL?: string | undefined;
            disableRedirect?: boolean | undefined;
            idToken?: {
                token: string;
                nonce?: string | undefined;
                accessToken?: string | undefined;
                refreshToken?: string | undefined;
                expiresAt?: number | undefined;
            } | undefined;
            scopes?: string[] | undefined;
            requestSignUp?: boolean | undefined;
            loginHint?: string | undefined;
            additionalData?: Record<string, any> | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<NonNullable<{
            redirect: boolean;
            url: string;
        } | {
            redirect: boolean;
            token: string;
            url: undefined;
            user: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                email: string;
                emailVerified: boolean;
                name: string;
                image?: string | null | undefined | undefined;
            };
        }>, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    signOut: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
        query?: Record<string, any> | undefined;
        fetchOptions?: FetchOptions | undefined;
    }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        success: boolean;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    signUp: {
        email: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            name: string;
            email: string;
            password: string;
            image?: string | undefined;
            callbackURL?: string | undefined;
            rememberMe?: boolean | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            email: string;
            name: string;
            password: string;
            image?: string | undefined;
            callbackURL?: string | undefined;
            fetchOptions?: FetchOptions | undefined;
        } & {} & {} & {} & {
            username?: string | null | undefined;
            displayUsername?: string | null | undefined;
        } & {} & {}>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<NonNullable<{
            token: null;
            user: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                email: string;
                emailVerified: boolean;
                name: string;
                image?: string | null | undefined | undefined;
            };
        } | {
            token: string;
            user: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                email: string;
                emailVerified: boolean;
                name: string;
                image?: string | null | undefined | undefined;
            };
        }>, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    signIn: {
        email: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            email: string;
            password: string;
            callbackURL?: string | undefined;
            rememberMe?: boolean | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            email: string;
            password: string;
            callbackURL?: string | undefined;
            rememberMe?: boolean | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            redirect: boolean;
            token: string;
            url?: string | undefined;
            user: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                email: string;
                emailVerified: boolean;
                name: string;
                image?: string | null | undefined | undefined;
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    resetPassword: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
        newPassword: string;
        token?: string | undefined;
    }> & Record<string, any>, Partial<{
        token?: string | undefined;
    }> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
        newPassword: string;
        token?: string | undefined;
    } & {
        fetchOptions?: FetchOptions | undefined;
    }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        status: boolean;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    verifyEmail: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
        token: string;
        callbackURL?: string | undefined;
    }> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
        query: {
            token: string;
            callbackURL?: string | undefined;
        };
        fetchOptions?: FetchOptions | undefined;
    }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<NonNullable<void | {
        status: boolean;
    }>, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    sendVerificationEmail: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
        email: string;
        callbackURL?: string | undefined;
    }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
        email: string;
        callbackURL?: string | undefined;
    } & {
        fetchOptions?: FetchOptions | undefined;
    }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        status: boolean;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    changeEmail: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
        newEmail: string;
        callbackURL?: string | undefined;
    }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
        newEmail: string;
        callbackURL?: string | undefined;
    } & {
        fetchOptions?: FetchOptions | undefined;
    }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        status: boolean;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    changePassword: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
        newPassword: string;
        currentPassword: string;
        revokeOtherSessions?: boolean | undefined;
    }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
        newPassword: string;
        currentPassword: string;
        revokeOtherSessions?: boolean | undefined;
    } & {
        fetchOptions?: FetchOptions | undefined;
    }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        token: string | null;
        user: {
            id: string;
            email: string;
            name: string;
            image: string | null | undefined;
            emailVerified: boolean;
            createdAt: Date;
            updatedAt: Date;
        };
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    updateUser: <FetchOptions extends better_auth.ClientFetchOption<Partial<Partial<{}> & {
        name?: string | undefined;
        image?: string | undefined | null;
    }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
        image?: (string | null) | undefined;
        name?: string | undefined;
        fetchOptions?: FetchOptions | undefined;
    } & Partial<{} & {} & {} & {
        username?: string | null | undefined;
        displayUsername?: string | null | undefined;
    } & {} & {}>> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        status: boolean;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    deleteUser: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
        callbackURL?: string | undefined;
        password?: string | undefined;
        token?: string | undefined;
    }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
        callbackURL?: string | undefined;
        password?: string | undefined;
        token?: string | undefined;
    } & {
        fetchOptions?: FetchOptions | undefined;
    }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        success: boolean;
        message: string;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    requestPasswordReset: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
        email: string;
        redirectTo?: string | undefined;
    }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
        email: string;
        redirectTo?: string | undefined;
    } & {
        fetchOptions?: FetchOptions | undefined;
    }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        status: boolean;
        message: string;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    resetPassword: {
        ":token": <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            callbackURL: string;
        }> & Record<string, any>, {
            token: string;
        }>>(data_0: better_auth.Prettify<{
            query: {
                callbackURL: string;
            };
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<never, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    listSessions: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
        query?: Record<string, any> | undefined;
        fetchOptions?: FetchOptions | undefined;
    }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<better_auth.Prettify<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        userId: string;
        expiresAt: Date;
        token: string;
        ipAddress?: string | null | undefined | undefined;
        userAgent?: string | null | undefined | undefined;
    }>[], {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    revokeSession: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
        token: string;
    }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
        token: string;
    } & {
        fetchOptions?: FetchOptions | undefined;
    }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        status: boolean;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    revokeSessions: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
        query?: Record<string, any> | undefined;
        fetchOptions?: FetchOptions | undefined;
    }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        status: boolean;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    revokeOtherSessions: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
        query?: Record<string, any> | undefined;
        fetchOptions?: FetchOptions | undefined;
    }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        status: boolean;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    linkSocial: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
        provider: unknown;
        callbackURL?: string | undefined;
        idToken?: {
            token: string;
            nonce?: string | undefined;
            accessToken?: string | undefined;
            refreshToken?: string | undefined;
            scopes?: string[] | undefined;
        } | undefined;
        requestSignUp?: boolean | undefined;
        scopes?: string[] | undefined;
        errorCallbackURL?: string | undefined;
        disableRedirect?: boolean | undefined;
        additionalData?: Record<string, any> | undefined;
    }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
        provider: unknown;
        callbackURL?: string | undefined;
        idToken?: {
            token: string;
            nonce?: string | undefined;
            accessToken?: string | undefined;
            refreshToken?: string | undefined;
            scopes?: string[] | undefined;
        } | undefined;
        requestSignUp?: boolean | undefined;
        scopes?: string[] | undefined;
        errorCallbackURL?: string | undefined;
        disableRedirect?: boolean | undefined;
        additionalData?: Record<string, any> | undefined;
    } & {
        fetchOptions?: FetchOptions | undefined;
    }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        url: string;
        redirect: boolean;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    listAccounts: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
        query?: Record<string, any> | undefined;
        fetchOptions?: FetchOptions | undefined;
    }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        id: string;
        providerId: string;
        createdAt: Date;
        updatedAt: Date;
        accountId: string;
        userId: string;
        scopes: string[];
    }[], {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    deleteUser: {
        callback: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            token: string;
            callbackURL?: string | undefined;
        }> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            query: {
                token: string;
                callbackURL?: string | undefined;
            };
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            success: boolean;
            message: string;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    unlinkAccount: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
        providerId: string;
        accountId?: string | undefined;
    }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
        providerId: string;
        accountId?: string | undefined;
    } & {
        fetchOptions?: FetchOptions | undefined;
    }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        status: boolean;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    refreshToken: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
        providerId: string;
        accountId?: string | undefined;
        userId?: string | undefined;
    }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
        providerId: string;
        accountId?: string | undefined;
        userId?: string | undefined;
    } & {
        fetchOptions?: FetchOptions | undefined;
    }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        accessToken: string | undefined;
        refreshToken: string | undefined;
        accessTokenExpiresAt: Date | undefined;
        refreshTokenExpiresAt: Date | undefined;
        scope: string | null | undefined;
        idToken: string | null | undefined;
        providerId: string;
        accountId: string;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    getAccessToken: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
        providerId: string;
        accountId?: string | undefined;
        userId?: string | undefined;
    }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
        providerId: string;
        accountId?: string | undefined;
        userId?: string | undefined;
    } & {
        fetchOptions?: FetchOptions | undefined;
    }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        accessToken: string;
        accessTokenExpiresAt: Date | undefined;
        scopes: string[];
        idToken: string | undefined;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    accountInfo: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
        accountId?: string | undefined;
    }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
        query?: {
            accountId?: string | undefined;
        } | undefined;
        fetchOptions?: FetchOptions | undefined;
    }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        user: better_auth.OAuth2UserInfo;
        data: Record<string, any>;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    getSession: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
        disableCookieCache?: unknown;
        disableRefresh?: unknown;
    }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
        query?: {
            disableCookieCache?: unknown;
            disableRefresh?: unknown;
        } | undefined;
        fetchOptions?: FetchOptions | undefined;
    }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        user: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            email: string;
            emailVerified: boolean;
            name: string;
            image?: string | null | undefined;
            isAnonymous: boolean | null | undefined;
            username?: string | null | undefined;
            displayUsername?: string | null | undefined;
            twoFactorEnabled: boolean | null | undefined;
        };
        session: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            userId: string;
            expiresAt: Date;
            token: string;
            ipAddress?: string | null | undefined;
            userAgent?: string | null | undefined;
            activeOrganizationId?: string | null | undefined;
            activeTeamId?: string | null | undefined;
        };
    } | null, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    apiKey: {
        create: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            name?: string | undefined;
            expiresIn?: number | null | undefined;
            userId?: unknown;
            prefix?: string | undefined;
            remaining?: number | null | undefined;
            metadata?: any;
            refillAmount?: number | undefined;
            refillInterval?: number | undefined;
            rateLimitTimeWindow?: number | undefined;
            rateLimitMax?: number | undefined;
            rateLimitEnabled?: boolean | undefined;
            permissions?: Record<string, string[]> | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            name?: string | undefined;
            expiresIn?: number | null | undefined;
            userId?: unknown;
            prefix?: string | undefined;
            remaining?: number | null | undefined;
            metadata?: any;
            refillAmount?: number | undefined;
            refillInterval?: number | undefined;
            rateLimitTimeWindow?: number | undefined;
            rateLimitMax?: number | undefined;
            rateLimitEnabled?: boolean | undefined;
            permissions?: Record<string, string[]> | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            key: string;
            metadata: any;
            permissions: any;
            id: string;
            name: string | null;
            start: string | null;
            prefix: string | null;
            userId: string;
            refillInterval: number | null;
            refillAmount: number | null;
            lastRefillAt: Date | null;
            enabled: boolean;
            rateLimitEnabled: boolean;
            rateLimitTimeWindow: number | null;
            rateLimitMax: number | null;
            requestCount: number;
            remaining: number | null;
            lastRequest: Date | null;
            expiresAt: Date | null;
            createdAt: Date;
            updatedAt: Date;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    apiKey: {
        get: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            id: string;
        }> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            query: {
                id: string;
            };
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            permissions: {
                [key: string]: string[];
            } | null;
            id: string;
            name: string | null;
            start: string | null;
            prefix: string | null;
            userId: string;
            refillInterval: number | null;
            refillAmount: number | null;
            lastRefillAt: Date | null;
            enabled: boolean;
            rateLimitEnabled: boolean;
            rateLimitTimeWindow: number | null;
            rateLimitMax: number | null;
            requestCount: number;
            remaining: number | null;
            lastRequest: Date | null;
            expiresAt: Date | null;
            createdAt: Date;
            updatedAt: Date;
            metadata: Record<string, any> | null;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    apiKey: {
        update: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            keyId: string;
            userId?: unknown;
            name?: string | undefined;
            enabled?: boolean | undefined;
            remaining?: number | undefined;
            refillAmount?: number | undefined;
            refillInterval?: number | undefined;
            metadata?: any;
            expiresIn?: number | null | undefined;
            rateLimitEnabled?: boolean | undefined;
            rateLimitTimeWindow?: number | undefined;
            rateLimitMax?: number | undefined;
            permissions?: Record<string, string[]> | null | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            keyId: string;
            userId?: unknown;
            name?: string | undefined;
            enabled?: boolean | undefined;
            remaining?: number | undefined;
            refillAmount?: number | undefined;
            refillInterval?: number | undefined;
            metadata?: any;
            expiresIn?: number | null | undefined;
            rateLimitEnabled?: boolean | undefined;
            rateLimitTimeWindow?: number | undefined;
            rateLimitMax?: number | undefined;
            permissions?: Record<string, string[]> | null | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            permissions: {
                [key: string]: string[];
            } | null;
            id: string;
            name: string | null;
            start: string | null;
            prefix: string | null;
            userId: string;
            refillInterval: number | null;
            refillAmount: number | null;
            lastRefillAt: Date | null;
            enabled: boolean;
            rateLimitEnabled: boolean;
            rateLimitTimeWindow: number | null;
            rateLimitMax: number | null;
            requestCount: number;
            remaining: number | null;
            lastRequest: Date | null;
            expiresAt: Date | null;
            createdAt: Date;
            updatedAt: Date;
            metadata: Record<string, any> | null;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    apiKey: {
        delete: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            keyId: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            keyId: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            success: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    apiKey: {
        list: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: Record<string, any> | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            permissions: {
                [key: string]: string[];
            } | null;
            id: string;
            name: string | null;
            start: string | null;
            prefix: string | null;
            userId: string;
            refillInterval: number | null;
            refillAmount: number | null;
            lastRefillAt: Date | null;
            enabled: boolean;
            rateLimitEnabled: boolean;
            rateLimitTimeWindow: number | null;
            rateLimitMax: number | null;
            requestCount: number;
            remaining: number | null;
            lastRequest: Date | null;
            expiresAt: Date | null;
            createdAt: Date;
            updatedAt: Date;
            metadata: Record<string, any> | null;
        }[], {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    multiSession: {
        listDeviceSessions: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: Record<string, any> | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            user: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                email: string;
                emailVerified: boolean;
                name: string;
                image?: string | null | undefined;
            };
            session: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                userId: string;
                expiresAt: Date;
                token: string;
                ipAddress?: string | null | undefined;
                userAgent?: string | null | undefined;
            };
        }[], {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    multiSession: {
        setActive: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            sessionToken: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            sessionToken: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            session: better_auth.Session & Record<string, any>;
            user: better_auth.User & Record<string, any>;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    multiSession: {
        revoke: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            sessionToken: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            sessionToken: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            status: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    passkey: {
        generateRegisterOptions: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            authenticatorAttachment?: "platform" | "cross-platform" | undefined;
            name?: string | undefined;
        }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: {
                authenticatorAttachment?: "platform" | "cross-platform" | undefined;
                name?: string | undefined;
            } | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<_better_auth_passkey_client.PublicKeyCredentialCreationOptionsJSON, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    passkey: {
        generateAuthenticateOptions: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: Record<string, any> | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<_better_auth_passkey_client.PublicKeyCredentialRequestOptionsJSON, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    passkey: {
        verifyRegistration: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            response: any;
            name?: string | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            response: any;
            name?: string | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<_better_auth_passkey.Passkey, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    passkey: {
        verifyAuthentication: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            response: _better_auth_passkey_client.AuthenticationResponseJSON;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            response: _better_auth_passkey_client.AuthenticationResponseJSON;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            session: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                userId: string;
                expiresAt: Date;
                token: string;
                ipAddress?: string | null | undefined;
                userAgent?: string | null | undefined;
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    passkey: {
        listUserPasskeys: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: Record<string, any> | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<_better_auth_passkey.Passkey[], {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    passkey: {
        deletePasskey: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            id: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            id: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            status: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    passkey: {
        updatePasskey: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            id: string;
            name: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            id: string;
            name: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            passkey: _better_auth_passkey.Passkey;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    signIn: {
        oauth2: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            providerId: string;
            callbackURL?: string | undefined;
            errorCallbackURL?: string | undefined;
            newUserCallbackURL?: string | undefined;
            disableRedirect?: boolean | undefined;
            scopes?: string[] | undefined;
            requestSignUp?: boolean | undefined;
            additionalData?: Record<string, any> | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            providerId: string;
            callbackURL?: string | undefined;
            errorCallbackURL?: string | undefined;
            newUserCallbackURL?: string | undefined;
            disableRedirect?: boolean | undefined;
            scopes?: string[] | undefined;
            requestSignUp?: boolean | undefined;
            additionalData?: Record<string, any> | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            url: string;
            redirect: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    oauth2: {
        link: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            providerId: string;
            callbackURL: string;
            scopes?: string[] | undefined;
            errorCallbackURL?: string | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            providerId: string;
            callbackURL: string;
            scopes?: string[] | undefined;
            errorCallbackURL?: string | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            url: string;
            redirect: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    signIn: {
        anonymous: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: Record<string, any> | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            token: string;
            user: {
                id: string;
                email: string;
                emailVerified: boolean;
                name: string;
                createdAt: Date;
                updatedAt: Date;
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    signIn: {
        username: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            username: string;
            password: string;
            rememberMe?: boolean | undefined;
            callbackURL?: string | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            username: string;
            password: string;
            rememberMe?: boolean | undefined;
            callbackURL?: string | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            token: string;
            user: {
                id: string;
                email: string;
                emailVerified: boolean;
                username: string;
                displayUsername: string;
                name: string;
                image: string | null | undefined;
                createdAt: Date;
                updatedAt: Date;
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    isUsernameAvailable: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
        username: string;
    }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
        username: string;
    } & {
        fetchOptions?: FetchOptions | undefined;
    }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
        available: boolean;
    }, {
        code?: string | undefined;
        message?: string | undefined;
    }, FetchOptions["throw"] extends true ? true : false>>;
} & {
    signIn: {
        magicLink: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            email: string;
            name?: string | undefined;
            callbackURL?: string | undefined;
            newUserCallbackURL?: string | undefined;
            errorCallbackURL?: string | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            email: string;
            name?: string | undefined;
            callbackURL?: string | undefined;
            newUserCallbackURL?: string | undefined;
            errorCallbackURL?: string | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            status: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    magicLink: {
        verify: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            token: string;
            callbackURL?: string | undefined;
            errorCallbackURL?: string | undefined;
            newUserCallbackURL?: string | undefined;
        }> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            query: {
                token: string;
                callbackURL?: string | undefined;
                errorCallbackURL?: string | undefined;
                newUserCallbackURL?: string | undefined;
            };
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            token: string;
            user: {
                id: string;
                email: string;
                emailVerified: boolean;
                name: string;
                image: string | null | undefined;
                createdAt: Date;
                updatedAt: Date;
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    emailOtp: {
        sendVerificationOtp: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            email: string;
            type: "sign-in" | "email-verification" | "forget-password";
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            email: string;
            type: "sign-in" | "email-verification" | "forget-password";
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            success: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    emailOtp: {
        checkVerificationOtp: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            email: string;
            type: "sign-in" | "email-verification" | "forget-password";
            otp: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            email: string;
            type: "sign-in" | "email-verification" | "forget-password";
            otp: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            success: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    emailOtp: {
        verifyEmail: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            email: string;
            otp: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            email: string;
            otp: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<NonNullable<{
            status: boolean;
            token: string;
            user: {
                id: string;
                email: string;
                emailVerified: boolean;
                name: string;
                image: string | null | undefined;
                createdAt: Date;
                updatedAt: Date;
            };
        } | {
            status: boolean;
            token: null;
            user: {
                id: string;
                email: string;
                emailVerified: boolean;
                name: string;
                image: string | null | undefined;
                createdAt: Date;
                updatedAt: Date;
            };
        }>, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    signIn: {
        emailOtp: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            email: string;
            otp: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            email: string;
            otp: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            token: string;
            user: {
                id: string;
                email: string;
                emailVerified: boolean;
                name: string;
                image: string | null | undefined;
                createdAt: Date;
                updatedAt: Date;
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    forgetPassword: {
        emailOtp: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            email: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            email: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            success: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    emailOtp: {
        resetPassword: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            email: string;
            otp: string;
            password: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            email: string;
            otp: string;
            password: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            success: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    twoFactor: {
        enable: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            password: string;
            issuer?: string | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            password: string;
            issuer?: string | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            totpURI: string;
            backupCodes: string[];
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    twoFactor: {
        disable: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            password: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            password: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            status: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    twoFactor: {
        verifyBackupCode: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            code: string;
            disableSession?: boolean | undefined;
            trustDevice?: boolean | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            code: string;
            disableSession?: boolean | undefined;
            trustDevice?: boolean | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            token: string | undefined;
            user: {
                id: string;
                email: string;
                emailVerified: boolean;
                name: string;
                image: string | null | undefined;
                createdAt: Date;
                updatedAt: Date;
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    twoFactor: {
        generateBackupCodes: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            password: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            password: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            status: boolean;
            backupCodes: string[];
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    twoFactor: {
        sendOtp: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            trustDevice?: boolean | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: Record<string, any> | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            status: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    twoFactor: {
        verifyOtp: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            code: string;
            trustDevice?: boolean | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            code: string;
            trustDevice?: boolean | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            token: string;
            user: {
                id: string;
                email: string;
                emailVerified: boolean;
                name: string;
                image: string | null | undefined;
                createdAt: Date;
                updatedAt: Date;
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    twoFactor: {
        getTotpUri: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            password: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            password: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            totpURI: string;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    twoFactor: {
        verifyTotp: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            code: string;
            trustDevice?: boolean | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            code: string;
            trustDevice?: boolean | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            token: string;
            user: {
                id: string;
                email: string;
                emailVerified: boolean;
                name: string;
                image: string | null | undefined;
                createdAt: Date;
                updatedAt: Date;
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        create: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            name: string;
            slug: string;
            userId?: string | undefined;
            logo?: string | undefined;
            metadata?: Record<string, any> | undefined;
            keepCurrentActiveOrganization?: boolean | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            name: string;
            slug: string;
            userId?: string | undefined;
            logo?: string | undefined;
            metadata?: Record<string, any> | undefined;
            keepCurrentActiveOrganization?: boolean | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            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)[];
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        update: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            data: {
                name?: string | undefined;
                slug?: string | undefined;
                logo?: string | undefined;
                metadata?: Record<string, any> | undefined;
            } & Partial<{}>;
            organizationId?: string | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            data: {
                name?: string | undefined;
                slug?: string | undefined;
                logo?: string | undefined;
                metadata?: Record<string, any> | undefined;
            } & Partial<{}>;
            organizationId?: string | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            name: string;
            slug: string;
            createdAt: Date;
            logo?: string | null | undefined | undefined;
            metadata?: any;
        } & {
            metadata: Record<string, any> | undefined;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        delete: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            organizationId: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            organizationId: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            name: string;
            slug: string;
            createdAt: Date;
            logo?: string | null | undefined | undefined;
            metadata?: any;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        setActive: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            organizationId?: string | null | undefined;
            organizationSlug?: string | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            organizationId?: string | null | undefined;
            organizationSlug?: string | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            members: {
                id: string;
                organizationId: string;
                role: "member" | "admin" | "owner";
                createdAt: Date;
                userId: string;
                teamId?: string | undefined | undefined;
                user: {
                    id: string;
                    email: string;
                    name: string;
                    image?: string | undefined;
                };
            }[];
            invitations: {
                id: string;
                organizationId: string;
                email: string;
                role: "member" | "admin" | "owner";
                status: better_auth_plugins.InvitationStatus;
                inviterId: string;
                expiresAt: Date;
                createdAt: Date;
                teamId?: string | undefined | undefined;
            }[];
            teams: {
                id: string;
                name: string;
                organizationId: string;
                createdAt: Date;
                updatedAt?: Date | undefined;
            }[];
        } & {
            id: string;
            name: string;
            slug: string;
            createdAt: Date;
            logo?: string | null | undefined | undefined;
            metadata?: any;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        getFullOrganization: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            organizationId?: string | undefined;
            organizationSlug?: string | undefined;
            membersLimit?: string | number | undefined;
        }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: {
                organizationId?: string | undefined;
                organizationSlug?: string | undefined;
                membersLimit?: string | number | undefined;
            } | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            members: {
                id: string;
                organizationId: string;
                role: "member" | "admin" | "owner";
                createdAt: Date;
                userId: string;
                teamId?: string | undefined | undefined;
                user: {
                    id: string;
                    email: string;
                    name: string;
                    image?: string | undefined;
                };
            }[];
            invitations: {
                id: string;
                organizationId: string;
                email: string;
                role: "member" | "admin" | "owner";
                status: better_auth_plugins.InvitationStatus;
                inviterId: string;
                expiresAt: Date;
                createdAt: Date;
                teamId?: string | undefined | undefined;
            }[];
            teams: {
                id: string;
                name: string;
                organizationId: string;
                createdAt: Date;
                updatedAt?: Date | undefined;
            }[];
        } & {
            id: string;
            name: string;
            slug: string;
            createdAt: Date;
            logo?: string | null | undefined | undefined;
            metadata?: any;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        list: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: Record<string, any> | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            name: string;
            slug: string;
            createdAt: Date;
            logo?: string | null | undefined | undefined;
            metadata?: any;
        }[], {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        inviteMember: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            email: string;
            role: "member" | "admin" | "owner" | ("member" | "admin" | "owner")[];
            organizationId?: string | undefined;
            resend?: boolean | undefined;
        } & {
            teamId?: (string | string[]) | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            email: string;
            role: "member" | "admin" | "owner" | ("member" | "admin" | "owner")[];
            organizationId?: string | undefined;
            resend?: boolean | undefined;
        } & {
            teamId?: (string | string[]) | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            organizationId: string;
            email: string;
            role: "member" | "admin" | "owner";
            status: better_auth_plugins.InvitationStatus;
            inviterId: string;
            expiresAt: Date;
            createdAt: Date;
            teamId?: string | undefined | undefined;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        cancelInvitation: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            invitationId: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            invitationId: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            organizationId: string;
            email: string;
            role: "member" | "admin" | "owner";
            status: better_auth_plugins.InvitationStatus;
            inviterId: string;
            expiresAt: Date;
            createdAt: Date;
            teamId?: string | undefined | undefined;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        acceptInvitation: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            invitationId: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            invitationId: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            invitation: {
                id: string;
                organizationId: string;
                email: string;
                role: "member" | "admin" | "owner";
                status: better_auth_plugins.InvitationStatus;
                inviterId: string;
                expiresAt: Date;
                createdAt: Date;
                teamId?: string | undefined | undefined;
            };
            member: {
                id: string;
                organizationId: string;
                userId: string;
                role: string;
                createdAt: Date;
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        getInvitation: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            id: string;
        }> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            query: {
                id: string;
            };
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<NonNullable<{
            id: string;
            organizationId: string;
            email: string;
            role: "member" | "admin" | "owner";
            status: better_auth_plugins.InvitationStatus;
            inviterId: string;
            expiresAt: Date;
            createdAt: Date;
            teamId?: string | undefined | undefined;
        } & {
            organizationName: string;
            organizationSlug: string;
            inviterEmail: string;
        }>, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        rejectInvitation: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            invitationId: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            invitationId: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            invitation: {
                id: string;
                organizationId: string;
                email: string;
                role: "member" | "admin" | "owner";
                status: better_auth_plugins.InvitationStatus;
                inviterId: string;
                expiresAt: Date;
                createdAt: Date;
            } | null;
            member: null;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        listInvitations: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            organizationId?: string | undefined;
        }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: {
                organizationId?: string | undefined;
            } | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            organizationId: string;
            email: string;
            role: "member" | "admin" | "owner";
            status: better_auth_plugins.InvitationStatus;
            inviterId: string;
            expiresAt: Date;
            createdAt: Date;
            teamId?: string | undefined | undefined;
        }[], {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        getActiveMember: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: Record<string, any> | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<Omit<{
            id: string;
            organizationId: string;
            role: "member" | "admin" | "owner";
            createdAt: Date;
            userId: string;
            teamId?: string | undefined | undefined;
            user: {
                id: string;
                email: string;
                name: string;
                image?: string | undefined;
            };
        } & {
            user: better_auth.User;
        }, "user"> & {
            user: {
                id: string;
                name: string;
                email: string;
                image: string | undefined;
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        checkSlug: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            slug: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            slug: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            status: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        removeMember: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            memberIdOrEmail: string;
            organizationId?: string | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            memberIdOrEmail: string;
            organizationId?: string | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            member: {
                id: string;
                organizationId: string;
                role: "member" | "admin" | "owner";
                createdAt: Date;
                userId: string;
                teamId?: string | undefined | undefined;
                user: {
                    id: string;
                    email: string;
                    name: string;
                    image?: string | undefined;
                };
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        updateMemberRole: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            role: "member" | "admin" | "owner" | ("member" | "admin" | "owner")[] | better_auth.LiteralString | better_auth.LiteralString[];
            memberId: string;
            organizationId?: string | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            role: "member" | "admin" | "owner" | ("member" | "admin" | "owner")[] | better_auth.LiteralString | better_auth.LiteralString[];
            memberId: string;
            organizationId?: string | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            organizationId: string;
            role: "member" | "admin" | "owner";
            createdAt: Date;
            userId: string;
            user: {
                id: string;
                email: string;
                name: string;
                image?: string | undefined;
            };
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        leave: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            organizationId: string;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            organizationId: string;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<NonNullable<Omit<{
            id: string;
            organizationId: string;
            role: "member" | "admin" | "owner";
            createdAt: Date;
            userId: string;
            teamId?: string | undefined | undefined;
            user: {
                id: string;
                email: string;
                name: string;
                image?: string | undefined;
            };
        } & {
            user: better_auth.User;
        }, "user"> & {
            user: {
                id: string;
                name: string;
                email: string;
                image: string | undefined;
            };
        }>, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        listUserInvitations: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            email?: string | undefined;
        }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: {
                email?: string | undefined;
            } | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<(Omit<{
            id: string;
            organizationId: string;
            email: string;
            role: "member" | "admin" | "owner";
            status: better_auth_plugins.InvitationStatus;
            inviterId: string;
            expiresAt: Date;
            createdAt: Date;
            teamId?: string | undefined | undefined;
        } & {
            organization: {
                id: string;
                name: string;
                slug: string;
                createdAt: Date;
                logo?: string | null | undefined | undefined;
                metadata?: any;
            };
        }, "organization"> & {
            organizationName: string;
        })[], {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        listMembers: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            limit?: string | number | undefined;
            offset?: string | number | undefined;
            sortBy?: string | undefined;
            sortDirection?: "desc" | "asc" | undefined;
            filterField?: string | undefined;
            filterValue?: string | number | boolean | undefined;
            filterOperator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "contains" | undefined;
            organizationId?: string | undefined;
            organizationSlug?: string | undefined;
        }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: {
                limit?: string | number | undefined;
                offset?: string | number | undefined;
                sortBy?: string | undefined;
                sortDirection?: "desc" | "asc" | undefined;
                filterField?: string | undefined;
                filterValue?: string | number | boolean | undefined;
                filterOperator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "contains" | undefined;
                organizationId?: string | undefined;
                organizationSlug?: string | undefined;
            } | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            members: ({
                id: string;
                organizationId: string;
                role: "member" | "admin" | "owner";
                createdAt: Date;
                userId: string;
                teamId?: string | undefined | undefined;
                user: {
                    id: string;
                    email: string;
                    name: string;
                    image?: string | undefined;
                };
            } & {
                user: {
                    id: string;
                    name: string;
                    email: string;
                    image: string | null | undefined;
                };
            })[];
            total: number;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        getActiveMemberRole: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            userId?: string | undefined;
            organizationId?: string | undefined;
            organizationSlug?: string | undefined;
        }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: {
                userId?: string | undefined;
                organizationId?: string | undefined;
                organizationSlug?: string | undefined;
            } | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            role: "member" | "admin" | "owner";
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        hasPermission: <FetchOptions extends better_auth.ClientFetchOption<Partial<({
            permission: {
                readonly organization?: ("update" | "delete")[] | undefined;
                readonly member?: ("update" | "delete" | "create")[] | undefined;
                readonly invitation?: ("create" | "cancel")[] | undefined;
                readonly team?: ("update" | "delete" | "create")[] | undefined;
                readonly ac?: ("update" | "delete" | "create" | "read")[] | undefined;
            };
            permissions?: never | undefined;
        } | {
            permissions: {
                readonly organization?: ("update" | "delete")[] | undefined;
                readonly member?: ("update" | "delete" | "create")[] | undefined;
                readonly invitation?: ("create" | "cancel")[] | undefined;
                readonly team?: ("update" | "delete" | "create")[] | undefined;
                readonly ac?: ("update" | "delete" | "create" | "read")[] | undefined;
            };
            permission?: never | undefined;
        }) & {
            organizationId?: string | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<(({
            permission: {
                readonly organization?: ("update" | "delete")[] | undefined;
                readonly member?: ("update" | "delete" | "create")[] | undefined;
                readonly invitation?: ("create" | "cancel")[] | undefined;
                readonly team?: ("update" | "delete" | "create")[] | undefined;
                readonly ac?: ("update" | "delete" | "create" | "read")[] | undefined;
            };
            permissions?: never | undefined;
        } | {
            permissions: {
                readonly organization?: ("update" | "delete")[] | undefined;
                readonly member?: ("update" | "delete" | "create")[] | undefined;
                readonly invitation?: ("create" | "cancel")[] | undefined;
                readonly team?: ("update" | "delete" | "create")[] | undefined;
                readonly ac?: ("update" | "delete" | "create" | "read")[] | undefined;
            };
            permission?: never | undefined;
        }) & {
            organizationId?: string | undefined;
        }) & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            error: null;
            success: boolean;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        createTeam: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            name: string;
            organizationId?: string | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            name: string;
            organizationId?: string | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            name: string;
            organizationId: string;
            createdAt: Date;
            updatedAt?: Date | undefined;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        listTeams: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            organizationId?: string | undefined;
        }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: {
                organizationId?: string | undefined;
            } | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            name: string;
            organizationId: string;
            createdAt: Date;
            updatedAt?: Date | undefined;
        }[], {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        removeTeam: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            teamId: string;
            organizationId?: string | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            teamId: string;
            organizationId?: string | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            message: string;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        updateTeam: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            teamId: string;
            data: Partial<{
                name: string;
                organizationId: string;
            }>;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            teamId: string;
            data: Partial<{
                name: string;
                organizationId: string;
            }>;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            name: string;
            organizationId: string;
            createdAt: Date;
            updatedAt?: Date | undefined;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        setActiveTeam: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            teamId?: string | null | undefined;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            teamId?: string | null | undefined;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            name: string;
            organizationId: string;
            createdAt: Date;
            updatedAt?: Date | undefined;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        listUserTeams: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: Record<string, any> | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            name: string;
            organizationId: string;
            createdAt: Date;
            updatedAt?: Date | undefined;
        }[], {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        listTeamMembers: <FetchOptions extends better_auth.ClientFetchOption<never, Partial<{
            teamId?: string | undefined;
        }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: better_auth.Prettify<{
            query?: {
                teamId?: string | undefined;
            } | undefined;
            fetchOptions?: FetchOptions | undefined;
        }> | undefined, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            teamId: string;
            userId: string;
            createdAt: Date;
        }[], {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        addTeamMember: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            teamId: string;
            userId: unknown;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            teamId: string;
            userId: unknown;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            id: string;
            teamId: string;
            userId: string;
            createdAt: Date;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    organization: {
        removeTeamMember: <FetchOptions extends better_auth.ClientFetchOption<Partial<{
            teamId: string;
            userId: unknown;
        }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: better_auth.Prettify<{
            teamId: string;
            userId: unknown;
        } & {
            fetchOptions?: FetchOptions | undefined;
        }>, data_1?: FetchOptions | undefined) => Promise<_better_fetch_fetch.BetterFetchResponse<{
            message: string;
        }, {
            code?: string | undefined;
            message?: string | undefined;
        }, FetchOptions["throw"] extends true ? true : false>>;
    };
} & {
    signIn: {
        passkey: (opts?: {
            autoFill?: boolean;
            fetchOptions?: better_auth.ClientFetchOption;
        } | undefined, options?: better_auth.ClientFetchOption | undefined) => Promise<{
            data: null;
            error: {
                message?: string | undefined;
                status: number;
                statusText: string;
            };
        } | {
            data: {
                session: better_auth.Session;
                user: better_auth.User;
            };
            error: null;
        } | {
            data: null;
            error: {
                code: string;
                message: string;
                status: number;
                statusText: string;
            };
        }>;
    };
    passkey: {
        addPasskey: (opts?: {
            fetchOptions?: better_auth.ClientFetchOption;
            name?: string;
            authenticatorAttachment?: "platform" | "cross-platform";
            useAutoRegister?: boolean;
        } | undefined, fetchOpts?: better_auth.ClientFetchOption | undefined) => Promise<{
            data: null;
            error: {
                message?: string | undefined;
                status: number;
                statusText: string;
            };
        } | {
            data: _better_auth_passkey.Passkey;
            error: null;
        } | {
            data: null;
            error: {
                code: string;
                message: string;
                status: number;
                statusText: string;
            };
        }>;
    };
    $Infer: {
        Passkey: _better_auth_passkey.Passkey;
    };
} & {
    oneTap: (opts?: better_auth_client_plugins.GoogleOneTapActionOptions | undefined, fetchOptions?: better_auth.ClientFetchOption | undefined) => Promise<void>;
} & {
    $Infer: {
        ActiveOrganization: {
            members: {
                id: string;
                organizationId: string;
                role: "member" | "admin" | "owner";
                createdAt: Date;
                userId: string;
                teamId?: string | undefined | undefined;
                user: {
                    id: string;
                    email: string;
                    name: string;
                    image?: string | undefined;
                };
            }[];
            invitations: {
                id: string;
                organizationId: string;
                email: string;
                role: "member" | "admin" | "owner";
                status: better_auth_plugins.InvitationStatus;
                inviterId: string;
                expiresAt: Date;
                createdAt: Date;
                teamId?: string | undefined | undefined;
            }[];
            teams: {
                id: string;
                name: string;
                organizationId: string;
                createdAt: Date;
                updatedAt?: Date | undefined;
            }[];
        } & {
            id: string;
            name: string;
            slug: string;
            createdAt: Date;
            logo?: string | null | undefined | undefined;
            metadata?: any;
        };
        Organization: {
            id: string;
            name: string;
            slug: string;
            createdAt: Date;
            logo?: string | null | undefined;
            metadata?: any;
        };
        Invitation: {
            id: string;
            organizationId: string;
            email: string;
            role: "member" | "admin" | "owner";
            status: better_auth_plugins.InvitationStatus;
            inviterId: string;
            expiresAt: Date;
            createdAt: Date;
            teamId?: string | undefined | undefined;
        };
        Member: {
            id: string;
            organizationId: string;
            role: "member" | "admin" | "owner";
            createdAt: Date;
            userId: string;
            teamId?: string | undefined | undefined;
            user: {
                id: string;
                email: string;
                name: string;
                image?: string | undefined;
            };
        };
        Team: {
            id: string;
            name: string;
            organizationId: string;
            createdAt: Date;
            updatedAt?: Date | undefined;
        };
    };
    organization: {
        checkRolePermission: <R extends "member" | "admin" | "owner">(data: ({
            permission: {
                readonly organization?: ("update" | "delete")[] | undefined;
                readonly member?: ("update" | "delete" | "create")[] | undefined;
                readonly invitation?: ("create" | "cancel")[] | undefined;
                readonly team?: ("update" | "delete" | "create")[] | undefined;
                readonly ac?: ("update" | "delete" | "create" | "read")[] | undefined;
            };
            permissions?: never | undefined;
        } | {
            permissions: {
                readonly organization?: ("update" | "delete")[] | undefined;
                readonly member?: ("update" | "delete" | "create")[] | undefined;
                readonly invitation?: ("create" | "cancel")[] | undefined;
                readonly team?: ("update" | "delete" | "create")[] | undefined;
                readonly ac?: ("update" | "delete" | "create" | "read")[] | undefined;
            };
            permission?: never | undefined;
        }) & {
            role: R;
        }) => boolean;
    };
} & {
    useSession: () => {
        data: {
            user: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                email: string;
                emailVerified: boolean;
                name: string;
                image?: string | null | undefined;
                isAnonymous: boolean | null | undefined;
                username?: string | null | undefined;
                displayUsername?: string | null | undefined;
                twoFactorEnabled: boolean | null | undefined;
            };
            session: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                userId: string;
                expiresAt: Date;
                token: string;
                ipAddress?: string | null | undefined;
                userAgent?: string | null | undefined;
                activeOrganizationId?: string | null | undefined;
                activeTeamId?: string | null | undefined;
            };
        } | null;
        isPending: boolean;
        isRefetching: boolean;
        error: _better_fetch_fetch.BetterFetchError | null;
        refetch: (queryParams?: {
            query?: better_auth.SessionQueryParams;
        } | undefined) => Promise<void>;
    };
    $Infer: {
        Session: {
            user: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                email: string;
                emailVerified: boolean;
                name: string;
                image?: string | null | undefined;
                isAnonymous: boolean | null | undefined;
                username?: string | null | undefined;
                displayUsername?: string | null | undefined;
                twoFactorEnabled: boolean | null | undefined;
            };
            session: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                userId: string;
                expiresAt: Date;
                token: string;
                ipAddress?: string | null | undefined;
                userAgent?: string | null | undefined;
                activeOrganizationId?: string | null | undefined;
                activeTeamId?: string | null | undefined;
            };
        };
    };
    $fetch: _better_fetch_fetch.BetterFetch<{
        plugins: (_better_fetch_fetch.BetterFetchPlugin<Record<string, any>> | {
            id: string;
            name: string;
            hooks: {
                onSuccess(context: _better_fetch_fetch.SuccessContext<any>): void;
            };
        } | {
            id: string;
            name: string;
            hooks: {
                onSuccess: ((context: _better_fetch_fetch.SuccessContext<any>) => Promise<void> | void) | undefined;
                onError: ((context: _better_fetch_fetch.ErrorContext) => Promise<void> | void) | undefined;
                onRequest: (<T extends Record<string, any>>(context: _better_fetch_fetch.RequestContext<T>) => Promise<_better_fetch_fetch.RequestContext | void> | _better_fetch_fetch.RequestContext | void) | undefined;
                onResponse: ((context: _better_fetch_fetch.ResponseContext) => Promise<Response | void | _better_fetch_fetch.ResponseContext> | Response | _better_fetch_fetch.ResponseContext | void) | undefined;
            };
        })[];
        cache?: RequestCache | undefined;
        method: string;
        headers?: (HeadersInit & (HeadersInit | {
            accept: "application/json" | "text/plain" | "application/octet-stream";
            "content-type": "application/json" | "text/plain" | "application/x-www-form-urlencoded" | "multipart/form-data" | "application/octet-stream";
            authorization: "Bearer" | "Basic";
        })) | undefined;
        redirect?: RequestRedirect | undefined;
        credentials?: RequestCredentials;
        integrity?: string | undefined;
        keepalive?: boolean | undefined;
        mode?: RequestMode | undefined;
        priority?: RequestPriority | undefined;
        referrer?: string | undefined;
        referrerPolicy?: ReferrerPolicy | undefined;
        signal?: (AbortSignal | null) | undefined;
        window?: null | undefined;
        onRetry?: ((response: _better_fetch_fetch.ResponseContext) => Promise<void> | void) | undefined;
        hookOptions?: {
            cloneResponse?: boolean;
        } | undefined;
        timeout?: number | undefined;
        customFetchImpl: _better_fetch_fetch.FetchEsque;
        baseURL: string;
        throw?: boolean | undefined;
        auth?: ({
            type: "Bearer";
            token: string | Promise<string | undefined> | (() => string | Promise<string | undefined> | undefined) | undefined;
        } | {
            type: "Basic";
            username: string | (() => string | undefined) | undefined;
            password: string | (() => string | undefined) | undefined;
        } | {
            type: "Custom";
            prefix: string | (() => string | undefined) | undefined;
            value: string | (() => string | undefined) | undefined;
        }) | undefined;
        body?: any;
        query?: any;
        params?: any;
        duplex?: "full" | "half" | undefined;
        jsonParser: (text: string) => Promise<any> | any;
        retry?: _better_fetch_fetch.RetryOptions | undefined;
        retryAttempt?: number | undefined;
        output?: (_better_fetch_fetch.StandardSchemaV1 | typeof Blob | typeof File) | undefined;
        errorSchema?: _better_fetch_fetch.StandardSchemaV1 | undefined;
        disableValidation?: boolean | undefined;
        disableSignal?: boolean | undefined;
    }, unknown, unknown, {}>;
    $store: {
        notify: (signal?: (Omit<string, "$sessionSignal"> | "$sessionSignal") | undefined) => void;
        listen: (signal: Omit<string, "$sessionSignal"> | "$sessionSignal", listener: (value: boolean, oldValue?: boolean | undefined) => void) => void;
        atoms: Record<string, better_auth_react.WritableAtom<any>>;
    };
    $ERROR_CODES: {
        readonly INVALID_SESSION_TOKEN: "Invalid session token";
        readonly YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_ORGANIZATION: "You are not allowed to create a new organization";
        readonly YOU_HAVE_REACHED_THE_MAXIMUM_NUMBER_OF_ORGANIZATIONS: "You have reached the maximum number of organizations";
        readonly ORGANIZATION_ALREADY_EXISTS: "Organization already exists";
        readonly ORGANIZATION_SLUG_ALREADY_TAKEN: "Organization slug already taken";
        readonly ORGANIZATION_NOT_FOUND: "Organization not found";
        readonly USER_IS_NOT_A_MEMBER_OF_THE_ORGANIZATION: "User is not a member of the organization";
        readonly YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_ORGANIZATION: "You are not allowed to update this organization";
        readonly YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_ORGANIZATION: "You are not allowed to delete this organization";
        readonly NO_ACTIVE_ORGANIZATION: "No active organization";
        readonly USER_IS_ALREADY_A_MEMBER_OF_THIS_ORGANIZATION: "User is already a member of this organization";
        readonly MEMBER_NOT_FOUND: "Member not found";
        readonly ROLE_NOT_FOUND: "Role not found";
        readonly YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_TEAM: "You are not allowed to create a new team";
        readonly TEAM_ALREADY_EXISTS: "Team already exists";
        readonly TEAM_NOT_FOUND: "Team not found";
        readonly YOU_CANNOT_LEAVE_THE_ORGANIZATION_AS_THE_ONLY_OWNER: "You cannot leave the organization as the only owner";
        readonly YOU_CANNOT_LEAVE_THE_ORGANIZATION_WITHOUT_AN_OWNER: "You cannot leave the organization without an owner";
        readonly YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_MEMBER: "You are not allowed to delete this member";
        readonly YOU_ARE_NOT_ALLOWED_TO_INVITE_USERS_TO_THIS_ORGANIZATION: "You are not allowed to invite users to this organization";
        readonly USER_IS_ALREADY_INVITED_TO_THIS_ORGANIZATION: "User is already invited to this organization";
        readonly INVITATION_NOT_FOUND: "Invitation not found";
        readonly YOU_ARE_NOT_THE_RECIPIENT_OF_THE_INVITATION: "You are not the recipient of the invitation";
        readonly EMAIL_VERIFICATION_REQUIRED_BEFORE_ACCEPTING_OR_REJECTING_INVITATION: "Email verification required before accepting or rejecting invitation";
        readonly YOU_ARE_NOT_ALLOWED_TO_CANCEL_THIS_INVITATION: "You are not allowed to cancel this invitation";
        readonly INVITER_IS_NO_LONGER_A_MEMBER_OF_THE_ORGANIZATION: "Inviter is no longer a member of the organization";
        readonly YOU_ARE_NOT_ALLOWED_TO_INVITE_USER_WITH_THIS_ROLE: "You are not allowed to invite a user with this role";
        readonly FAILED_TO_RETRIEVE_INVITATION: "Failed to retrieve invitation";
        readonly YOU_HAVE_REACHED_THE_MAXIMUM_NUMBER_OF_TEAMS: "You have reached the maximum number of teams";
        readonly UNABLE_TO_REMOVE_LAST_TEAM: "Unable to remove last team";
        readonly YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_MEMBER: "You are not allowed to update this member";
        readonly ORGANIZATION_MEMBERSHIP_LIMIT_REACHED: "Organization membership limit reached";
        readonly YOU_ARE_NOT_ALLOWED_TO_CREATE_TEAMS_IN_THIS_ORGANIZATION: "You are not allowed to create teams in this organization";
        readonly YOU_ARE_NOT_ALLOWED_TO_DELETE_TEAMS_IN_THIS_ORGANIZATION: "You are not allowed to delete teams in this organization";
        readonly YOU_ARE_NOT_ALLOWED_TO_UPDATE_THIS_TEAM: "You are not allowed to update this team";
        readonly YOU_ARE_NOT_ALLOWED_TO_DELETE_THIS_TEAM: "You are not allowed to delete this team";
        readonly INVITATION_LIMIT_REACHED: "Invitation limit reached";
        readonly TEAM_MEMBER_LIMIT_REACHED: "Team member limit reached";
        readonly USER_IS_NOT_A_MEMBER_OF_THE_TEAM: "User is not a member of the team";
        readonly YOU_CAN_NOT_ACCESS_THE_MEMBERS_OF_THIS_TEAM: "You are not allowed to list the members of this team";
        readonly YOU_DO_NOT_HAVE_AN_ACTIVE_TEAM: "You do not have an active team";
        readonly YOU_ARE_NOT_ALLOWED_TO_CREATE_A_NEW_TEAM_MEMBER: "You are not allowed to create a new member";
        readonly YOU_ARE_NOT_ALLOWED_TO_REMOVE_A_TEAM_MEMBER: "You are not allowed to remove a team member";
        readonly YOU_ARE_NOT_ALLOWED_TO_ACCESS_THIS_ORGANIZATION: "You are not allowed to access this organization as an owner";
        readonly YOU_ARE_NOT_A_MEMBER_OF_THIS_ORGANIZATION: "You are not a member of this organization";
        readonly MISSING_AC_INSTANCE: "Dynamic Access Control requires a pre-defined ac instance on the server auth plugin. Read server logs for more information";
        readonly YOU_MUST_BE_IN_AN_ORGANIZATION_TO_CREATE_A_ROLE: "You must be in an organization to create a role";
        readonly YOU_ARE_NOT_ALLOWED_TO_CREATE_A_ROLE: "You are not allowed to create a role";
        readonly YOU_ARE_NOT_ALLOWED_TO_UPDATE_A_ROLE: "You are not allowed to update a role";
        readonly YOU_ARE_NOT_ALLOWED_TO_DELETE_A_ROLE: "You are not allowed to delete a role";
        readonly YOU_ARE_NOT_ALLOWED_TO_READ_A_ROLE: "You are not allowed to read a role";
        readonly YOU_ARE_NOT_ALLOWED_TO_LIST_A_ROLE: "You are not allowed to list a role";
        readonly YOU_ARE_NOT_ALLOWED_TO_GET_A_ROLE: "You are not allowed to get a role";
        readonly TOO_MANY_ROLES: "This organization has too many roles";
        readonly INVALID_RESOURCE: "The provided permission includes an invalid resource";
        readonly ROLE_NAME_IS_ALREADY_TAKEN: "That role name is already taken";
        readonly CANNOT_DELETE_A_PRE_DEFINED_ROLE: "Cannot delete a pre-defined role";
        readonly INVALID_METADATA_TYPE: "metadata must be an object or undefined";
        readonly REFILL_AMOUNT_AND_INTERVAL_REQUIRED: "refillAmount is required when refillInterval is provided";
        readonly REFILL_INTERVAL_AND_AMOUNT_REQUIRED: "refillInterval is required when refillAmount is provided";
        readonly USER_BANNED: "User is banned";
        readonly UNAUTHORIZED_SESSION: "Unauthorized or invalid session";
        readonly KEY_NOT_FOUND: "API Key not found";
        readonly KEY_DISABLED: "API Key is disabled";
        readonly KEY_EXPIRED: "API Key has expired";
        readonly USAGE_EXCEEDED: "API Key has reached its usage limit";
        readonly KEY_NOT_RECOVERABLE: "API Key is not recoverable";
        readonly EXPIRES_IN_IS_TOO_SMALL: "The expiresIn is smaller than the predefined minimum value.";
        readonly EXPIRES_IN_IS_TOO_LARGE: "The expiresIn is larger than the predefined maximum value.";
        readonly INVALID_REMAINING: "The remaining count is either too large or too small.";
        readonly INVALID_PREFIX_LENGTH: "The prefix length is either too large or too small.";
        readonly INVALID_NAME_LENGTH: "The name length is either too large or too small.";
        readonly METADATA_DISABLED: "Metadata is disabled.";
        readonly RATE_LIMIT_EXCEEDED: "Rate limit exceeded.";
        readonly NO_VALUES_TO_UPDATE: "No values to update.";
        readonly KEY_DISABLED_EXPIRATION: "Custom key expiration values are disabled.";
        readonly INVALID_API_KEY: "Invalid API key.";
        readonly INVALID_USER_ID_FROM_API_KEY: "The user id from the API key is invalid.";
        readonly INVALID_API_KEY_GETTER_RETURN_TYPE: "API Key getter returned an invalid key type. Expected string.";
        readonly SERVER_ONLY_PROPERTY: "The property you're trying to set can only be set from the server auth instance only.";
        readonly FAILED_TO_UPDATE_API_KEY: "Failed to update API key";
        readonly NAME_REQUIRED: "API Key name is required.";
        readonly CHALLENGE_NOT_FOUND: "Challenge not found";
        readonly YOU_ARE_NOT_ALLOWED_TO_REGISTER_THIS_PASSKEY: "You are not allowed to register this passkey";
        readonly FAILED_TO_VERIFY_REGISTRATION: "Failed to verify registration";
        readonly PASSKEY_NOT_FOUND: "Passkey not found";
        readonly AUTHENTICATION_FAILED: "Authentication failed";
        readonly UNABLE_TO_CREATE_SESSION: "Unable to create session";
        readonly FAILED_TO_UPDATE_PASSKEY: "Failed to update passkey";
        readonly INVALID_OAUTH_CONFIGURATION: "Invalid OAuth configuration";
        readonly TOKEN_URL_NOT_FOUND: "Invalid OAuth configuration. Token URL not found.";
        readonly PROVIDER_CONFIG_NOT_FOUND: "No config found for provider";
        readonly PROVIDER_ID_REQUIRED: "Provider ID is required";
        readonly INVALID_OAUTH_CONFIG: "Invalid OAuth configuration.";
        readonly SESSION_REQUIRED: "Session is required";
        readonly INVALID_EMAIL_FORMAT: "Email was not generated in a valid format";
        readonly FAILED_TO_CREATE_USER: "Failed to create user";
        readonly COULD_NOT_CREATE_SESSION: "Could not create session";
        readonly ANONYMOUS_USERS_CANNOT_SIGN_IN_AGAIN_ANONYMOUSLY: "Anonymous users cannot sign in again anonymously";
        readonly INVALID_USERNAME_OR_PASSWORD: "Invalid username or password";
        readonly EMAIL_NOT_VERIFIED: "Email not verified";
        readonly UNEXPECTED_ERROR: "Unexpected error";
        readonly USERNAME_IS_ALREADY_TAKEN: "Username is already taken. Please try another.";
        readonly USERNAME_TOO_SHORT: "Username is too short";
        readonly USERNAME_TOO_LONG: "Username is too long";
        readonly INVALID_USERNAME: "Username is invalid";
        readonly INVALID_DISPLAY_USERNAME: "Display username is invalid";
        readonly OTP_EXPIRED: "OTP expired";
        readonly INVALID_OTP: "Invalid OTP";
        readonly TOO_MANY_ATTEMPTS: "Too many attempts";
        readonly OTP_NOT_ENABLED: "OTP not enabled";
        readonly OTP_HAS_EXPIRED: "OTP has expired";
        readonly TOTP_NOT_ENABLED: "TOTP not enabled";
        readonly TWO_FACTOR_NOT_ENABLED: "Two factor isn't enabled";
        readonly BACKUP_CODES_NOT_ENABLED: "Backup codes aren't enabled";
        readonly INVALID_BACKUP_CODE: "Invalid backup code";
        readonly INVALID_CODE: "Invalid code";
        readonly TOO_MANY_ATTEMPTS_REQUEST_NEW_CODE: "Too many attempts. Please request a new code.";
        readonly INVALID_TWO_FACTOR_COOKIE: "Invalid two factor cookie";
        readonly USER_NOT_FOUND: "User not found";
        readonly FAILED_TO_CREATE_SESSION: "Failed to create session";
        readonly FAILED_TO_UPDATE_USER: "Failed to update user";
        readonly FAILED_TO_GET_SESSION: "Failed to get session";
        readonly INVALID_PASSWORD: "Invalid password";
        readonly INVALID_EMAIL: "Invalid email";
        readonly INVALID_EMAIL_OR_PASSWORD: "Invalid email or password";
        readonly SOCIAL_ACCOUNT_ALREADY_LINKED: "Social account already linked";
        readonly PROVIDER_NOT_FOUND: "Provider not found";
        readonly INVALID_TOKEN: "Invalid token";
        readonly ID_TOKEN_NOT_SUPPORTED: "id_token not supported";
        readonly FAILED_TO_GET_USER_INFO: "Failed to get user info";
        readonly USER_EMAIL_NOT_FOUND: "User email not found";
        readonly PASSWORD_TOO_SHORT: "Password too short";
        readonly PASSWORD_TOO_LONG: "Password too long";
        readonly USER_ALREADY_EXISTS: "User already exists.";
        readonly USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL: "User already exists. Use another email.";
        readonly EMAIL_CAN_NOT_BE_UPDATED: "Email can not be updated";
        readonly CREDENTIAL_ACCOUNT_NOT_FOUND: "Credential account not found";
        readonly SESSION_EXPIRED: "Session expired. Re-authenticate to perform this action.";
        readonly FAILED_TO_UNLINK_LAST_ACCOUNT: "You can't unlink your last account";
        readonly ACCOUNT_NOT_FOUND: "Account not found";
        readonly USER_ALREADY_HAS_PASSWORD: "User already has a password. Provide that to delete the account.";
    };
};
type AuthClient = typeof authClient;
type Session = AuthClient["$Infer"]["Session"]["session"];

type Invitation = {
    id: string;
    organizationId: string;
    email: string;
    role: string;
    status: string;
    inviterId: string;
    expiresAt: Date;
    teamId?: string | undefined;
};

type AnyAuthSession = AnyAuthClient["$Infer"]["Session"];
type AuthHook<T> = {
    isPending: boolean;
    data?: T | null;
    error?: BetterFetchError | null;
    refetch?: Refetch;
};
type AuthHooks = {
    useSession: () => ReturnType<AnyAuthClient["useSession"]>;
    useListAccounts: () => AuthHook<Account[]>;
    useAccountInfo: (params: Parameters<AuthClient["accountInfo"]>[0]) => AuthHook<{
        user: User;
    }>;
    useListDeviceSessions: () => AuthHook<AnyAuthClient["$Infer"]["Session"][]>;
    useListSessions: () => AuthHook<AnyAuthSession["session"][]>;
    useListPasskeys: () => AuthHook<Passkey[]>;
    useListApiKeys: () => AuthHook<ApiKey[]>;
    useActiveOrganization: () => Partial<ReturnType<AuthClient["useActiveOrganization"]>>;
    useListOrganizations: () => Partial<ReturnType<AuthClient["useListOrganizations"]>>;
    useHasPermission: (params: Parameters<AuthClient["organization"]["hasPermission"]>[0]) => AuthHook<{
        error: null;
        success: boolean;
    }>;
    useInvitation: (params: Parameters<AuthClient["organization"]["getInvitation"]>[0]) => AuthHook<Invitation & {
        organizationName: string;
        organizationSlug: string;
        organizationLogo?: string;
    }>;
    useListInvitations: (params: Parameters<AuthClient["organization"]["listInvitations"]>[0]) => AuthHook<Invitation[]>;
    useListUserInvitations: () => AuthHook<Invitation[]>;
    useListMembers: (params: Parameters<AuthClient["organization"]["listMembers"]>[0]) => AuthHook<{
        members: (Member & {
            user?: Partial<User> | null;
        })[];
        total: number;
    }>;
    useListTeams: (params?: {
        organizationId?: string;
    }) => AuthHook<Team[]>;
    useListTeamMembers: (params: {
        teamId?: string;
    }) => AuthHook<TeamMember[]>;
    useListUserTeams: () => AuthHook<Team[]>;
    useIsRestoring?: () => boolean;
};
type Team = {
    id: string;
    name: string;
    organizationId: string;
    createdAt: Date;
    updatedAt: Date;
};
type TeamMember = {
    id: string;
    teamId: string;
    userId: string;
    createdAt: Date;
    user?: Partial<User> | null;
};

export type { AnyAuthClient as A, Refetch as R, Session as S, Team as T, AuthHooks as a, TeamMember as b, AuthClient as c };
