/**
 * KSQL エンジン
 */
import { Connection } from '../core/Connection';
import { Logger } from '../utils/Logger';
import { KsqlResult, ContinuousQuery, StreamingResult, KsqlStream, KsqlTable } from '../types/KsqlTypes';
export declare class KsqlEngine {
    private connection;
    private logger;
    private wasmKsqlEngine;
    private continuousQueries;
    private streamingResults;
    constructor(connection: Connection, logger: Logger);
    /**
     * KSQL エンジンを初期化
     */
    initialize(): Promise<void>;
    /**
     * KSQL クエリを実行
     */
    executeKsql(ksql: string): Promise<KsqlResult>;
    /**
     * ストリームを作成
     */
    createStream(stream: KsqlStream): Promise<KsqlResult>;
    /**
     * テーブルを作成
     */
    createTable(table: KsqlTable): Promise<KsqlResult>;
    /**
     * ストリームからストリームを作成（クエリベース）
     */
    createStreamAsSelect(streamName: string, selectQuery: string, partitionBy?: string): Promise<KsqlResult>;
    /**
     * 継続的クエリを作成
     */
    createContinuousQuery(name: string, ksql: string): Promise<string>;
    /**
     * 継続的クエリを停止
     */
    stopContinuousQuery(queryId: string): Promise<boolean>;
    /**
     * 継続的クエリ一覧を取得
     */
    listContinuousQueries(): Promise<ContinuousQuery[]>;
    /**
     * ストリーミング結果を取得
     */
    getStreamingResults(queryId: string, limit?: number): Promise<StreamingResult[]>;
    /**
     * ストリームを削除
     */
    dropStream(streamName: string): Promise<KsqlResult>;
    /**
     * テーブルを削除
     */
    dropTable(tableName: string): Promise<KsqlResult>;
    /**
     * ストリーム一覧を表示
     */
    showStreams(): Promise<KsqlResult>;
    /**
     * テーブル一覧を表示
     */
    showTables(): Promise<KsqlResult>;
    /**
     * ストリーミングデータを追加
     */
    addStreamingData(topic: string, data: any): Promise<void>;
    /**
     * クリーンアップ
     */
    cleanup(): Promise<void>;
    /**
     * CREATE STREAM KSQLを構築
     */
    private buildCreateStreamKsql;
    /**
     * CREATE TABLE KSQLを構築
     */
    private buildCreateTableKsql;
    /**
     * WASM結果を変換
     */
    private convertWasmResult;
    /**
     * モック KSQL 実行
     */
    private executeKsqlMock;
    /**
     * クエリタイプを解析
     */
    private parseQueryType;
    /**
     * 継続的クエリの実行を開始
     */
    private startContinuousQueryExecution;
    /**
     * 入力ソースを抽出
     */
    private extractInputSources;
    /**
     * 出力ターゲットを抽出
     */
    private extractOutputTarget;
}
