import type { JSONValue, ReadonlyJSONValue } from '../../shared/src/json.ts';
export type Value = JSONValue | ReadonlyJSONValue | undefined;
export type ColumnNames = {
    [src: string]: string;
};
export type DestNames = {
    tableName: string;
    columns: ColumnNames;
    allColumnsSame: boolean;
};
export declare class NameMapper {
    #private;
    constructor(tables: Map<string, DestNames>);
    tableName(src: string, context?: JSONValue): string;
    columnName(table: string, src: string, ctx?: JSONValue): string;
    row<V extends Value>(table: string, row: Readonly<Record<string, V>>): Readonly<Record<string, V>>;
    columns<Columns extends readonly string[] | undefined>(table: string, cols: Columns): Columns;
}
//# sourceMappingURL=name-mapper.d.ts.map