/**
 * 列名変換ユーティリティ
 *
 * KsqlDBの列名が強制的に大文字になることに対応するため、
 * TypeScript側のキャメルケースやスネークケースの列名を
 * 適切に変換するユーティリティ関数
 */
export type ColumnNameTransformStrategy = 'uppercase' | 'lowercase' | 'camelCase' | 'snake_case' | 'none';
/**
 * カスタム列名変換関数の型定義
 */
export type ColumnNameTransformFunction = (columnName: string) => string;
/**
 * 列名変換設定
 */
export interface ColumnNameTransformConfig {
    /** 事前定義された変換戦略 */
    strategy?: ColumnNameTransformStrategy;
    /** カスタム変換関数 */
    customTransform?: ColumnNameTransformFunction;
    /** 特定の列名のマッピング辞書 */
    columnMappings?: Record<string, string>;
    /** バックワード互換性のために既存の大文字列名を保持するか */
    preserveExistingUppercase?: boolean;
}
/**
 * 文字列をキャメルケースに変換
 * 例: user_id → userId, USER_NAME → userName, USERID → userId
 */
export declare function toCamelCase(str: string): string;
/**
 * 文字列をスネークケースに変換
 * 例: userId → user_id, UserName → user_name
 */
export declare function toSnakeCase(str: string): string;
/**
 * 文字列を大文字に変換
 * 例: userId → USERID, user_id → USER_ID
 */
export declare function toUpperCase(str: string): string;
/**
 * 文字列を小文字に変換
 * 例: USERID → userid, USER_ID → user_id
 */
export declare function toLowerCase(str: string): string;
/**
 * KsqlDB用列名変換（クエリ送信時）
 * TypeScriptコードで使用する列名をKsqlDBで使用する列名に変換
 */
export declare function transformColumnNameForKsqlDb(columnName: string, config?: ColumnNameTransformConfig): string;
/**
 * KsqlDBからのレスポンス列名変換（レスポンス受信時）
 * KsqlDBから受け取った列名をTypeScriptで使いやすい形式に変換
 */
export declare function transformColumnNameFromKsqlDb(columnName: string, config?: ColumnNameTransformConfig): string;
/**
 * 複数の列名を一括変換（KsqlDB送信用）
 */
export declare function transformColumnNamesForKsqlDb(columnNames: string[], config?: ColumnNameTransformConfig): string[];
/**
 * 複数の列名を一括変換（KsqlDBレスポンス用）
 */
export declare function transformColumnNamesFromKsqlDb(columnNames: string[], config?: ColumnNameTransformConfig): string[];
/**
 * オブジェクトのキーを変換（KsqlDB送信用）
 */
export declare function transformObjectKeysForKsqlDb<T extends Record<string, any>>(obj: T, config?: ColumnNameTransformConfig): Record<string, any>;
/**
 * オブジェクトのキーを変換（KsqlDBレスポンス用）
 */
export declare function transformObjectKeysFromKsqlDb<T extends Record<string, any>>(obj: T, config?: ColumnNameTransformConfig): Record<string, any>;
/**
 * 一般的な列名マッピングパターン
 */
export declare const COMMON_COLUMN_MAPPINGS: {
    /** TypeScript camelCase → KsqlDB UPPERCASE マッピング */
    CAMEL_TO_UPPER: {
        userId: string;
        userName: string;
        userEmail: string;
        accountId: string;
        createdAt: string;
        updatedAt: string;
        isActive: string;
        firstName: string;
        lastName: string;
        phoneNumber: string;
        emailAddress: string;
    };
    /** snake_case → KsqlDB UPPERCASE マッピング */
    SNAKE_TO_UPPER: {
        user_id: string;
        user_name: string;
        user_email: string;
        account_id: string;
        created_at: string;
        updated_at: string;
        is_active: string;
        first_name: string;
        last_name: string;
        phone_number: string;
        email_address: string;
    };
};
/**
 * 事前定義された設定パターン
 */
export declare const PRESET_COLUMN_TRANSFORM_CONFIGS: Record<string, ColumnNameTransformConfig>;
//# sourceMappingURL=column-name-transform.d.ts.map