import type { SessionUser } from '../lib/auth';
export declare function useAuth(): {
    user: SessionUser | null;
    session: {
        user: {
            id: string;
            emailVerified: boolean;
            name: string;
            createdAt: Date;
            updatedAt: Date;
            email?: string;
            image?: string;
        };
        session: {
            id: string;
            userId: string;
            expiresAt: Date;
            createdAt: Date;
            updatedAt: Date;
            token: string;
            ipAddress?: string;
            userAgent?: string;
        };
    };
    isLoading: boolean;
    signIn: ({ email, password, redirectTo }: {
        email: string;
        password: string;
        redirectTo?: string;
    }) => Promise<{
        redirect: boolean;
        token: string;
        url: string | undefined;
        user: {
            id: string;
            email: string;
            name: string;
            image: string | null | undefined;
            emailVerified: boolean;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
    signUp: ({ email, password, firstName, lastName }: {
        email: string;
        password: string;
        firstName?: string;
        lastName?: string;
    }) => Promise<NonNullable<{
        token: null;
        user: {
            id: string;
            email: string;
            name: string;
            image: string | null | undefined;
            emailVerified: boolean;
            createdAt: Date;
            updatedAt: Date;
        };
    } | {
        token: string;
        user: {
            id: string;
            email: string;
            name: string;
            image: string | null | undefined;
            emailVerified: boolean;
            createdAt: Date;
            updatedAt: Date;
        };
    }>>;
    signOut: () => Promise<void>;
    googleSignIn: (redirectTo?: string) => Promise<void>;
    resetPassword: (email: string) => Promise<{
        success: boolean;
        data: any;
        error: string;
    } | {
        success: boolean;
        data: {
            status: boolean;
        };
        error: any;
    }>;
    updatePassword: (newPassword: string, token?: string) => Promise<{
        success: boolean;
        data: any;
        error: string;
    } | {
        success: boolean;
        data: {
            status: boolean;
        };
        error: any;
    }>;
    changePassword: (currentPassword: string, newPassword: string, revokeOtherSessions?: boolean) => Promise<{
        success: boolean;
        data: any;
        error: string;
    } | {
        success: boolean;
        data: {
            token: string | null;
            user: {
                id: string;
                email: string;
                name: string;
                image: string | null | undefined;
                emailVerified: boolean;
                createdAt: Date;
                updatedAt: Date;
            };
        };
        error: any;
    }>;
    resendVerificationEmail: (email: string) => Promise<{
        success: boolean;
        data: any;
        error: string;
    } | {
        success: boolean;
        data: {
            status: boolean;
        };
        error: any;
    }>;
    isSigningIn: boolean;
    isSigningUp: boolean;
    signInError: any;
    signUpError: any;
};
//# sourceMappingURL=useAuth.d.ts.map