export interface User {
    id: string;
    email: string;
    password_hash: string;
    telegram_username: string | null;
    telegram_chat_id: number | null;
    plan: 'free' | 'weekly' | 'monthly';
    role: 'user' | 'admin';
    stripe_customer_id: string | null;
    stripe_subscription_id: string | null;
    subscription_status: string;
    subscription_ends_at: Date | null;
    created_at: Date;
    updated_at: Date;
}
export declare function createUser(email: string, password: string, telegramUsername?: string): Promise<User>;
export declare function findUserByEmail(email: string): Promise<User | null>;
export declare function findUserById(id: string): Promise<User | null>;
export declare function findUserByTelegramChatId(chatId: number): Promise<User | null>;
export declare function findUserByBotToken(token: string): Promise<User | null>;
export declare function updateUserTelegram(userId: string, telegramUsername: string, telegramChatId: number): Promise<void>;
export declare function updateUserPlan(userId: string, plan: 'free' | 'weekly' | 'monthly', stripeCustomerId?: string, stripeSubscriptionId?: string, subscriptionEndsAt?: Date): Promise<void>;
export declare function getUserBotToken(userId: string): Promise<string | null>;
export declare function findUserByStripeSubscriptionId(subscriptionId: string): Promise<User | null>;
export declare function downgradeUser(userId: string): Promise<void>;
export declare function updateSubscriptionStatus(userId: string, status: string): Promise<void>;
export declare function updateSubscriptionPeriod(userId: string, endsAt: Date): Promise<void>;
export declare function verifyPassword(user: User, password: string): Promise<boolean>;
export declare function getAllUsers(): Promise<User[]>;
export declare function updateUserRole(userId: string, role: 'user' | 'admin'): Promise<void>;
export declare function freezeUser(userId: string, frozen: boolean): Promise<void>;
export declare function getAdminUsers(): Promise<User[]>;
//# sourceMappingURL=user.d.ts.map