import type { BinaryOperator, ColumnReferenceNode, ExpressionNode, IdentifierNode, LiteralNode, ObjectNameNode, RawFragmentNode, SelectItemNode } from "./nodes.js";
/**
 * Retrieves the string value from an identifier node.
 *
 * @example
 * ```ts
 * const value = getIdentifierValue(identifier("example"));
 * ```
 */
export declare function getIdentifierValue(identifierNode: IdentifierNode | null | undefined): string | null;
/**
 * Checks whether an object name matches the expected table name.
 *
 * @example
 * ```ts
 * if (objectNameMatches(table.name, "projects")) {
 *   // ...
 * }
 * ```
 */
export declare function objectNameMatches(objectName: ObjectNameNode, expected: string): boolean;
/**
 * Determines whether the provided select item represents a `target.*` pattern
 * for one of the tracked table names.
 *
 * @example
 * ```ts
 * if (isSelectAllForTable(item, tableNames)) {
 *   // ...
 * }
 * ```
 */
export declare function isSelectAllForTable(item: SelectItemNode, tableNames: Set<string>): boolean;
/**
 * Extracts the qualifier (table or alias) from a column reference if present.
 *
 * @example
 * ```ts
 * const qualifier = getColumnQualifier(columnReference);
 * ```
 */
export declare function getColumnQualifier(column: ColumnReferenceNode): string | null;
/**
 * Extracts the column name from a column reference.
 *
 * @example
 * ```ts
 * const columnName = getColumnName(columnReference);
 * ```
 */
export declare function getColumnName(column: ColumnReferenceNode): string;
/**
 * Collects the path components of a column reference.
 *
 * @example
 * ```ts
 * const parts = getColumnPath(columnReference);
 * ```
 */
export declare function getColumnPath(column: ColumnReferenceNode, options?: {
    normalize?: boolean;
}): string[];
/**
 * Escapes single quotes in a string so it can be safely used as an SQL literal.
 *
 * @example
 * ```ts
 * sqlStringLiteral("O'Reilly"); // returns 'O''Reilly'
 * ```
 */
export declare function sqlStringLiteral(value: string): string;
/**
 * Determines whether an expression is a literal node.
 *
 * @example
 * ```ts
 * if (isLiteralExpression(expression)) {
 *   console.log(expression.value);
 * }
 * ```
 */
export declare function isLiteralExpression(expression: ExpressionNode | RawFragmentNode): expression is LiteralNode;
/**
 * Provides the SQL precedence ranking for binary operators.
 *
 * @example
 * ```ts
 * const precedence = getBinaryOperatorPrecedence("and");
 * ```
 */
export declare function getBinaryOperatorPrecedence(operator: BinaryOperator): number;
/**
 * Identifies operators that are not associative and must preserve ordering.
 *
 * @example
 * ```ts
 * if (isNonAssociativeBinaryOperator("-")) { ... }
 * ```
 */
export declare function isNonAssociativeBinaryOperator(operator: BinaryOperator): boolean;
/**
 * Normalizes identifier casing to simplify comparisons.
 *
 * @example
 * ```ts
 * const normalized = normalizeIdentifierValue("FoO");
 * ```
 */
export declare function normalizeIdentifierValue(value: string): string;
//# sourceMappingURL=ast-helpers.d.ts.map