/**
 * KawaORM - メインORM クラス
 *
 * KawaDB-WASMとのインターフェースを提供し、
 * 高レベルなORM機能とKSQL機能を統合します。
 */
import { EventEmitter } from 'eventemitter3';
import { Entity } from './core/Entity';
import { Repository } from './core/Repository';
import { KsqlEngine } from './ksql/KsqlEngine';
import { DatabaseConfig, ConnectionOptions } from './types/DatabaseTypes';
import { EntityConstructor } from './types/EntityTypes';
/**
 * KawaORM メインクラス
 */
export declare class KawaORM extends EventEmitter {
    private connection;
    private repositories;
    private ksqlEngine;
    private wasmLoader;
    private logger;
    private config;
    constructor(config?: DatabaseConfig);
    /**
     * データベースに接続
     */
    connect(options?: ConnectionOptions): Promise<void>;
    /**
     * データベースから切断
     */
    disconnect(): Promise<void>;
    /**
     * エンティティのリポジトリを取得
     */
    getRepository<T extends Entity>(entityConstructor: EntityConstructor<T>): Repository<T>;
    /**
     * KSQLエンジンを取得
     */
    getKsqlEngine(): KsqlEngine;
    /**
     * 生のSQLクエリを実行
     */
    query(sql: string, params?: any[]): Promise<any>;
    /**
     * トランザクションを開始
     */
    transaction<T>(callback: (orm: KawaORM) => Promise<T>): Promise<T>;
    /**
     * 接続状態を取得
     */
    isConnected(): boolean;
    /**
     * 現在の環境情報を取得
     */
    getEnvironmentInfo(): any;
    /**
     * 統計情報を取得
     */
    getStats(): Promise<any>;
    /**
     * データベースを最適化
     */
    optimize(): Promise<void>;
    /**
     * データを同期
     */
    sync(): Promise<void>;
    /**
     * 全データをクリア
     */
    clearAll(): Promise<void>;
}
