import type { User } from '%prismaGeneratedImports';
import type { RequestServiceContext } from '%requestServiceContextImports';
import type { UserSessionPayload } from '%userSessionTypesImports';
export declare function createUserWithEmailAndPassword({ input, }: {
    input: {
        email: string;
        password: string;
    };
}): Promise<User>;
export declare function registerUserWithEmailAndPassword({ input, context, }: {
    input: {
        email: string;
        password: string;
    };
    context: RequestServiceContext;
}): Promise<{
    session: UserSessionPayload;
    user: User;
}>;
export declare function authenticateUserWithEmailAndPassword({ input, context, }: {
    input: {
        email: string;
        password: string;
    };
    context: RequestServiceContext;
}): Promise<{
    session: UserSessionPayload;
}>;
/**
 * Change a user's password after validating their current password.
 * This is used when a user wants to change their own password.
 *
 * @param params - The parameters for changing password
 * @param params.userId - The ID of the user changing their password
 * @param params.input - The current and new password
 * @returns The updated user
 */
export declare function changeUserPassword({ userId, input, }: {
    userId: string;
    input: {
        currentPassword: string;
        newPassword: string;
    };
}): Promise<User>;
/**
 * Reset a user's password without requiring the current password.
 * This is used by administrators to reset any user's password.
 *
 * @param params - The parameters for resetting password
 * @param params.userId - The ID of the user whose password is being reset
 * @param params.input - The new password
 * @returns The updated user
 */
export declare function resetUserPassword({ userId, input, }: {
    userId: string;
    input: {
        newPassword: string;
    };
}): Promise<User>;
//# sourceMappingURL=user-password.service.d.ts.map