export interface User {
    id: string;
    username: string;
    email: string | null;
    password_hash: string;
    role: 'admin' | 'user';
    avatar: string | null;
    created_at: number;
    updated_at: number;
}
export interface UserCreateData {
    username: string;
    email: string | null;
    password: string;
    role: 'admin' | 'user';
    avatar?: string | null;
}
export interface UserUpdateData {
    username?: string;
    email?: string | null;
    password?: string;
    role?: 'admin' | 'user';
    avatar?: string | null;
}
export interface UserPublic {
    id: string;
    username: string;
    email: string | null;
    role: 'admin' | 'user';
    avatar: string | null;
    createdAt: string;
    updatedAt: string;
}
export declare class UserModel {
    private db;
    /**
     * Ensure database is available
     */
    private ensureDatabase;
    /**
     * Get all users (excluding the default system user)
     */
    getAllUsers(): UserPublic[];
    /**
     * Get user by ID
     */
    getUserById(id: string): UserPublic | null;
    /**
     * Get user by username
     */
    getUserByUsername(username: string): User | null;
    /**
     * Create a new user
     */
    createUser(userData: UserCreateData): Promise<UserPublic>;
    /**
     * Update a user
     */
    updateUser(id: string, userData: UserUpdateData): Promise<UserPublic | null>;
    /**
     * Delete a user
     */
    deleteUser(id: string): boolean;
    /**
     * Verify user password
     */
    verifyPassword(username: string, password: string): Promise<User | null>;
    /**
     * Check if username exists
     */
    usernameExists(username: string): boolean;
    /**
     * Check if email exists
     */
    emailExists(email: string): boolean;
    /**
     * Get user count (excluding the default system user)
     */
    getUserCount(): number;
    /**
     * Get real user count (excluding default system user) - alias for getUserCount
     */
    getRealUserCount(): number;
}
export declare const userModel: UserModel;
//# sourceMappingURL=userModel.d.ts.map