/**
 * Utility functions for handling SQL parameter references
 */
import type { CompiledTable, Table } from '../types/explore';
import type { LightdashProjectParameter } from '../types/lightdashProjectConfig';
export declare const parameterRegex: RegExp;
export declare enum LightdashParameters {
    PREFIX = "lightdash.parameters",
    PREFIX_SHORT = "ld.parameters"
}
/**
 * Extracts parameter references from SQL strings or format strings
 * @param sql - The SQL or format string to extract parameter references from
 * @returns An array of unique parameter names referenced in the string
 */
export declare const getParameterReferences: (sql: string, regex?: RegExp) => string[];
/**
 * Extracts and combines parameter references from both SQL and format strings
 * @param compiledSql - The compiled SQL to extract parameters from
 * @param format - Optional format string to extract parameters from
 * @returns An array of unique parameter names from both sources
 */
export declare const getParameterReferencesFromSqlAndFormat: (compiledSql: string, format?: string) => string[];
export declare const validateParameterReferences: (tableName: string, parameterReferences: string[], availableParameters: string[]) => void;
/**
 * Get all available parameter names for a project and explore
 * @param projectParameters - The project parameters
 * @param exploreParameters - The explore parameters
 * @returns An array of available parameter names
 */
export declare const getAvailableParameterNames: (projectParameters: Record<string, LightdashProjectParameter> | undefined, exploreParameters: Record<string, LightdashProjectParameter> | undefined) => string[];
/**
 * Get all available parameter names for a project and explore
 * @param exploreParameters - The explore parameters
 * @param includedTables - The included tables
 * @returns An array of available parameter names
 */
export declare const getAvailableParametersFromTables: (includedTables: (Table | CompiledTable)[]) => Record<string, LightdashProjectParameter>;
/**
 * Validate parameter names
 * @param parameters - The parameters to validate
 * @returns True if any parameter name doesn't match the valid pattern, false otherwise
 */
export declare const validateParameterNames: (parameters: Record<string, LightdashProjectParameter> | undefined) => {
    isInvalid: boolean;
    invalidParameters: string[];
};
/**
 * Validate parameter configuration using AJV against the JSON schema.
 */
export declare const validateParameterConfiguration: (parameters: Record<string, LightdashProjectParameter> | undefined) => {
    isValid: boolean;
    error: string | null;
};
//# sourceMappingURL=parameters.d.ts.map