import type { SchemaRules, DatabaseColumn, GeneratedSchemas } from '../../types/schema_generator.ts';
import { type QueryClientContract } from '../../types/database.ts';
/**
 * OrmSchemaBuilder handles the core logic of generating TypeScript
 * model schemas from database table structures.
 */
export declare class OrmSchemaBuilder {
    private client;
    /**
     * Schema rules for type mapping and customization
     */
    private schema;
    /**
     * Mapping from database types to internal type identifiers
     */
    private dataTypes;
    constructor(client: QueryClientContract);
    /**
     * Load user-defined schema rules
     */
    loadRules(rules: SchemaRules[]): void;
    /**
     * Serialize a decorator argument value to a TypeScript-safe string
     */
    private serializeArgValue;
    /**
     * Build a decorator string from a structured DecoratorInfo
     */
    private buildDecorator;
    /**
     * Build decorator strings from a ColumnInfo. Supports both the
     * new `decorators` array and the deprecated `decorator` string.
     */
    private buildDecorators;
    /**
     * Generate schema for a single column
     */
    private generateColumnSchema;
    /**
     * Generate schema for a single table (internal method)
     */
    private generateTableSchema;
    /**
     * Generate schemas for multiple tables
     */
    generateSchemas(tables: Array<{
        name: string;
        columns: Record<string, DatabaseColumn>;
        primaryKeys: string[];
    }>): GeneratedSchemas;
    /**
     * Get the final output string from generated schemas
     */
    getOutput(schemas: GeneratedSchemas): string;
}
