import type { LixEngine } from "../../engine/boot.js";
import type { LixSchemaDefinition } from "../../schema-definition/definition.js";
/**
 * Creates (or updates) a per-schema internal state cache table with core indexes.
 * Idempotent: safe to call multiple times and on existing tables.
 *
 * Core choices:
 * - STRICT + WITHOUT ROWID for compact storage and fast PK lookups
 * - Metadata columns reuse the canonical state column names (`entity_id`, `version_id`, ...)
 * - Property columns are created using sanitized schema property names prefixed with `x_`
 * - Indexes continue to accelerate hot access patterns (version/file scans, tombstones)
 *
 * @example
 * createSchemaCacheTableV2({
 *   engine,
 *   schema,
 *   tableName: schemaKeyToCacheTableNameV2("lix.commit", "1.0")
 * });
 */
export declare function createSchemaCacheTableV2(args: {
    engine: Pick<LixEngine, "executeSync">;
    schema: LixSchemaDefinition | null | undefined;
    tableName: string;
}): void;
/**
 * Utility to sanitize a schema_key for use in a physical cache table name.
 *
 * @example
 * const tableName = schemaKeyToCacheTableNameV2("lix.commit", "1.0");
 */
export declare function schemaKeyToCacheTableNameV2(schema_key: string, schema_version: string): string;
export declare function propertyNameToColumn(property: string): string;
export declare function sanitizeIdentifier(value: string): string;
/**
 * Returns schema property column names in insertion order.
 *
 * @example
 * const columns = getSchemaPropertyColumnNames(schema);
 */
export declare function getSchemaPropertyColumnNames(schema: LixSchemaDefinition | null | undefined): string[];
/**
 * Resolves the x-lix-version string from a schema.
 *
 * @example
 * const version = getSchemaVersion(schema); // "1.0"
 */
export declare function getSchemaVersion(schema: LixSchemaDefinition | null | undefined): string;
//# sourceMappingURL=create-schema-cache-table.d.ts.map