import { SimpleSelectQuery } from "../models/SelectQuery";
/**
 * SqlSortInjector injects sort conditions into a SelectQuery model,
 * creating ORDER BY clauses based on provided sort conditions.
 */
export declare class SqlSortInjector {
    private tableColumnResolver?;
    constructor(tableColumnResolver?: (tableName: string) => string[]);
    /**
     * Removes ORDER BY clause from the given query.
     * @param query The SelectQuery to modify
     * @returns The modified SimpleSelectQuery with ORDER BY clause removed
     */
    static removeOrderBy(query: SimpleSelectQuery | string): SimpleSelectQuery;
    /**
     * Injects sort conditions as ORDER BY clauses into the given query model.
     * Appends to existing ORDER BY clause if present.
     * @param query The SelectQuery to modify
     * @param sortConditions A record of column names and sort conditions
     * @returns The modified SimpleSelectQuery
     */
    inject(query: SimpleSelectQuery | string, sortConditions: SortConditions): SimpleSelectQuery;
    /**
     * Validates sort condition for a column
     */
    private validateSortCondition;
}
export type SortCondition = {
    asc?: boolean;
    desc?: boolean;
    nullsFirst?: boolean;
    nullsLast?: boolean;
};
export type SortConditions = {
    [columnName: string]: SortCondition;
};
