/**
 * 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"
}
/**
 * Single source of truth for extracting parameter references from a templated SQL or
 * format string. Detects both `${ld.parameters.X}` substitution sites and bare
 * `ld.parameters.X` references inside Liquid template blocks (only when `{%` is present,
 * to avoid false positives in plain SQL).
 *
 * @param sources - One or more strings to scan (e.g. compiled SQL, sql_from, format string).
 * @returns A deduplicated array of parameter names.
 */
export declare const getParameterReferences: (...sources: (string | undefined)[]) => 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