export type { User } from './types';
import type { User } from './types';
export declare class UserStorage {
    private db;
    private dbPath;
    constructor(dataDir?: string);
    initialize(): Promise<void>;
    private createTables;
    /** 幂等加列：若表已存在但缺 col 列，则 ALTER TABLE ADD COLUMN。 */
    private ensureColumn;
    private createDefaultAdmin;
    hashPassword(password: string): string;
    private verifyPassword;
    verifyPasswordDirect(password: string, hashedPassword: string): boolean;
    generateToken(userId: number): string;
    createUser(userData: Omit<User, 'id'>): Promise<number>;
    findUserByUsername(username: string): Promise<User | null>;
    findUserByUsernameIncludeInactive(username: string): Promise<User | null>;
    findUserById(id: number): Promise<User | null>;
    authenticateUser(username: string, password: string): Promise<User | null>;
    createSession(userId: number, tokenLifetime?: number): Promise<string>;
    validateSession(token: string): Promise<User | null>;
    revokeSession(token: string): Promise<boolean>;
    revokeAllUserSessions(userId: number): Promise<boolean>;
    cleanupExpiredSessions(): Promise<number>;
    private rowToUser;
    getUserInfo(user: User): {
        id: number;
        username: string;
        role: string;
        permissions: string[];
        created_at: number;
        updated_at: number;
        is_active: boolean;
        email?: string;
    };
    getAllUsers(): Promise<User[]>;
    updateUser(id: number, userData: Partial<Omit<User, 'id' | 'created_at'>>): Promise<boolean>;
    softDeleteUser(id: number): Promise<boolean>;
    hardDeleteUser(id: number): Promise<boolean>;
    deleteInactiveUsers(): Promise<number>;
    isUsernameExists(username: string, excludeId?: number): Promise<boolean>;
    getUsersWithPermission(permission: string): Promise<User[]>;
    private executeSql;
    private runSql;
    private getSql;
    close(): Promise<void>;
    private rowToCookieSite;
    listCookieSites(userId: number): Promise<any[]>;
    createCookieSite(userId: number, data: {
        name: string;
        url: string;
        remark?: string;
        cookies?: any[];
        label?: string;
        isDefault?: boolean;
    }): Promise<any>;
    updateCookieSite(userId: number, id: number, data: {
        name?: string;
        url?: string;
        remark?: string;
        cookies?: any[];
        label?: string;
        isDefault?: boolean;
    }): Promise<any | null>;
    /** 把某用户某 url 下所有组 is_default 置 0，exceptId 对应的除外 */
    private clearDefaultForUrl;
    /** 把指定组设为该站点的默认组（同 url 其他组自动取消） */
    setDefaultCookieSite(userId: number, id: number): Promise<any | null>;
    deleteCookieSite(userId: number, id: number): Promise<boolean>;
}
//# sourceMappingURL=UserStorage.d.ts.map