/**
 * ksqlDB コネクション - REST API 経由でクエリを実行、DDL／DML を発行
 */
import { KsqlDbConfig, EnhancedPullQueryOptions } from './types';
import { ColumnNameTransformConfig } from './utils/column-name-transform';
/**
 * ksqlDB クライアントを初期化
 */
export declare function initializeKsqlDbClient(ksqlConfig: KsqlDbConfig): void;
/**
 * 配列レスポンスをオブジェクトに変換する関数（強化版）
 * @param rows - データ行の配列
 * @param columnNames - カラム名の配列
 * @param transformConfig - 列名変換設定（オプション、指定されない場合はグローバル設定を使用）
 * @returns オブジェクトの配列
 */
export declare function transformArrayRowsToObjects(rows: any[][], columnNames: string[], transformConfig?: ColumnNameTransformConfig): Record<string, any>[];
/**
 * オプション型 - Pull Queryの結果形式を指定
 */
export interface PullQueryOptions {
    /** レスポンス形式: 'object' (デフォルト) | 'array' */
    format?: 'object' | 'array';
    /** テーブル名の正規化を行うかどうか */
    normalizeTableName?: boolean;
}
/**
 * DDL/DML文を実行（CREATE, INSERT, UPDATE, DELETE, DROP など）
 * /ksql エンドポイントを使用
 */
export declare function executeQuery(sql: string): Promise<any>;
/**
 * Pull Query を実行（一度だけ結果を取得するSELECT文）
 * /query-stream エンドポイントを使用
 * @param sql - 実行するSQL文
 * @param options - Pull Queryのオプション
 */
export declare function executePullQuery(sql: string, options?: PullQueryOptions): Promise<any>;
/**
 * Push Query を実行（継続的にデータを受信するSELECT文）
 * /query-stream エンドポイントでストリーミング
 */
export declare function executePushQuery(sql: string, onData: (data: any) => void, onError?: (error: Error) => void, onComplete?: () => void): Promise<{
    terminate: () => void;
}>;
/**
 * 汎用クエリ実行（自動でエンドポイントを選択）
 */
export declare function executeAnyQuery(sql: string): Promise<any>;
/**
 * DDL文を実行（CREATE STREAM/TABLE など）
 * 自動的にretention.ms=-1（infinity）を追加する機能付き
 */
export declare function executeDDL(ddl: string): Promise<any>;
/**
 * DDL実行のオプション設定
 */
export interface DDLExecutionOptions {
    /** retention.ms=-1の自動追加を無効にする（デフォルト: false） */
    disableAutoInfinityRetention?: boolean;
    /** カスタムretention設定（ミリ秒、-1でinfinity） */
    customRetentionMs?: number;
    /** その他のWITH句設定を自動追加 */
    additionalWithSettings?: Record<string, string>;
}
/**
 * オプション付きDDL文実行
 * @param ddl - 実行するDDL文
 * @param options - 実行オプション
 */
export declare function executeDDLWithOptions(ddl: string, options?: DDLExecutionOptions): Promise<any>;
/**
 * ストリーム作成ヘルパー - infinite retention設定済み
 */
export declare function createStreamWithInfinityRetention(streamName: string, fields: Record<string, string>, options?: {
    topic?: string;
    valueFormat?: 'JSON' | 'AVRO' | 'DELIMITED';
    keyField?: string;
    partitions?: number;
    replicas?: number;
    additionalSettings?: Record<string, string>;
}): Promise<any>;
/**
 * テーブル作成ヘルパー - infinite retention設定済み
 */
export declare function createTableWithInfinityRetention(tableName: string, sourceStream: string, selectClause?: string, groupByClause?: string, options?: {
    additionalSettings?: Record<string, string>;
}): Promise<any>;
/**
 * ストリーム/テーブル一覧を取得
 */
export declare function listStreams(): Promise<any>;
export declare function listTables(): Promise<any>;
/**
 * トピック一覧を取得
 */
export declare function listTopics(): Promise<any>;
/**
 * スキーマ情報を取得
 */
export declare function describeStream(streamName: string): Promise<any>;
export declare function describeTable(tableName: string): Promise<any>;
/**
 * クライアント設定を取得
 */
export declare function getClientConfig(): KsqlDbConfig | null;
/**
 * 接続状態を確認
 */
export declare function isConnected(): boolean;
/**
 * クライアントを閉じる
 */
export declare function closeClient(): void;
/**
 * Enhanced Pull Query実行（リジリエンス機能対応）
 *
 * 下位互換性を保ちながら、拡張オプションをサポート
 * 通常のexecutePullQueryと同じ動作だが、将来的にリジリエンス機能を統合
 *
 * @param sql - 実行するSQL文
 * @param options - 拡張されたPull Queryオプション
 */
export declare function executePullQueryEnhanced(sql: string, options?: EnhancedPullQueryOptions): Promise<any>;
export declare const KsqlDbClient: {
    initialize: typeof initializeKsqlDbClient;
    executeQuery: typeof executeQuery;
    executePullQuery: typeof executePullQuery;
    executePushQuery: typeof executePushQuery;
    executeDDL: typeof executeDDL;
    executeDDLWithOptions: typeof executeDDLWithOptions;
    createStreamWithInfinityRetention: typeof createStreamWithInfinityRetention;
    createTableWithInfinityRetention: typeof createTableWithInfinityRetention;
    listStreams: typeof listStreams;
    listTables: typeof listTables;
    listTopics: typeof listTopics;
    describeStream: typeof describeStream;
    describeTable: typeof describeTable;
    isConnected: typeof isConnected;
    getConfig: typeof getClientConfig;
    close: typeof closeClient;
    executeAnyQuery: typeof executeAnyQuery;
    executePullQueryEnhanced: typeof executePullQueryEnhanced;
    transformArrayRowsToObjects: typeof transformArrayRowsToObjects;
};
//# sourceMappingURL=ksqldb-client.d.ts.map