import { User } from '../types'; export interface DatabaseConfig { type: 'memory' | 'sqlite' | 'postgresql' | 'mysql'; connectionString?: string; host?: string; port?: number; database?: string; username?: string; password?: string; ssl?: boolean; } export interface DatabaseAdapter { connect(): Promise; disconnect(): Promise; createUser(user: Omit): Promise; getUserById(id: string): Promise; getUserByEmail(email: string): Promise; updateUser(id: string, updates: Partial): Promise; deleteUser(id: string): Promise; getAllUsers(): Promise; createSession(sessionData: any): Promise; getSession(sessionId: string): Promise; deleteSession(sessionId: string): Promise; } export declare class InMemoryDatabaseAdapter implements DatabaseAdapter { private users; private sessions; private nextUserId; connect(): Promise; disconnect(): Promise; createUser(userData: Omit): Promise; getUserById(id: string): Promise; getUserByEmail(email: string): Promise; updateUser(id: string, updates: Partial): Promise; deleteUser(id: string): Promise; getAllUsers(): Promise; createSession(sessionData: any): Promise; getSession(sessionId: string): Promise; deleteSession(sessionId: string): Promise; } export declare class SQLiteDatabaseAdapter implements DatabaseAdapter { private db; private config; constructor(config: DatabaseConfig); connect(): Promise; disconnect(): Promise; private initializeTables; createUser(userData: Omit): Promise; getUserById(id: string): Promise; getUserByEmail(email: string): Promise; updateUser(id: string, updates: Partial): Promise; deleteUser(id: string): Promise; getAllUsers(): Promise; createSession(sessionData: any): Promise; getSession(sessionId: string): Promise; deleteSession(sessionId: string): Promise; private mapRowToUser; } export declare class DatabaseService { private adapter; constructor(config: DatabaseConfig); connect(): Promise; disconnect(): Promise; createUser(userData: Omit): Promise; getUserById(id: string): Promise; getUserByEmail(email: string): Promise; updateUser(id: string, updates: Partial): Promise; deleteUser(id: string): Promise; getAllUsers(): Promise; createSession(sessionData: any): Promise; getSession(sessionId: string): Promise; deleteSession(sessionId: string): Promise; } export declare function createDatabaseService(config: DatabaseConfig): DatabaseService; //# sourceMappingURL=DatabaseService.d.ts.map