import type { PostgresAccessor } from '../../accessor/postgres.ts';
import type { ColumnInfo } from './client.ts';
interface DatabaseTable {
    schema: string;
    name: string;
    row_count_estimate: number;
    size_bytes_estimate: number;
}
interface DatabaseView {
    schema: string;
    name: string;
    kind: 'view' | 'materialized';
}
interface EntityColumn extends ColumnInfo {
    primary_key?: boolean;
    references?: {
        schema: string;
        table: string;
        column: string;
    };
}
export declare function buildDatabaseJson(accessor: PostgresAccessor): Promise<{
    database: string;
    schemas: string[];
    tables: DatabaseTable[];
    views: DatabaseView[];
    relationships: import("./client.ts").Relationship[];
}>;
export declare function buildEntitySchemaJson(accessor: PostgresAccessor, schema: string, name: string, kind: string): Promise<{
    schema: string;
    name: string;
    kind: string;
    columns: EntityColumn[];
    primary_key: string[];
    foreign_keys: import("./client.ts").ForeignKey[];
    indexes: import("./client.ts").IndexInfo[];
    row_count_estimate: number;
    size_bytes_estimate: number;
}>;
export declare function databaseNameFromDsn(dsn: string): string;
export {};
//# sourceMappingURL=_schema_json.d.ts.map