export declare function blacklistToken(token: string): Promise<void>;
export declare function isTokenBlacklisted(token: string): Promise<boolean>;
export interface AuthUser {
    id: number;
    clerkUserId?: string | null;
    email: string;
    name: string;
    role: 'user' | 'admin';
    plan: 'free' | 'pro' | 'trader';
    planExpiresAt: string | null;
    stripe_customer_id: string | null;
    createdAt: string;
}
export interface AuthResult {
    success: boolean;
    user?: AuthUser;
    token?: string;
    error?: string;
}
export declare function initAuthTables(): Promise<void>;
export declare function registerUser(email: string, name: string, password: string): Promise<AuthResult>;
export declare function loginUser(email: string, password: string): Promise<AuthResult>;
export declare function generateToken(user: AuthUser): string;
export declare function verifyToken(token: string): Promise<{
    id: number;
    email: string;
    role: string;
} | null>;
export declare function getUserById(id: number): Promise<AuthUser | null>;
export declare function getOrCreateUserFromClerk(input: {
    clerkUserId: string;
    email: string;
    name: string;
}): Promise<AuthUser>;
export declare function updateUserPlan(userId: number, plan: 'free' | 'pro' | 'trader', expiresAt: Date | null, stripeCustomerId?: string, stripeSubscriptionId?: string): Promise<void>;
export declare function generateResetToken(email: string): Promise<string | null>;
export declare function resetPassword(token: string, newPassword: string): Promise<AuthResult>;
//# sourceMappingURL=auth.d.ts.map