import { J1qlService } from '../client/services/j1ql-service.js';
interface ValidationResult {
    isValid: boolean;
    error?: string;
    suggestion?: string;
    results?: any;
}
interface ValidateQueryOptions {
    /**
     * Poll budget (attempts × 1s) for the validation query. When set, a poll timeout is treated as
     * advisory — validateQuery returns `isValid: true` so the caller (the widget pre-create gate) can
     * proceed instead of blocking. Real syntax/parse errors still fail validation.
     */
    maxPollAttempts?: number;
}
export declare class J1QLValidator {
    private j1qlService;
    constructor(j1qlService: J1qlService);
    /**
     * Validates a J1QL query by executing it with a small limit
     * Returns validation result with error details and suggestions
     */
    validateQuery(query: string, options?: ValidateQueryOptions): Promise<ValidationResult>;
    /**
     * Provides detailed error handling with suggestions
     */
    handleQueryError(error: any, query: string): ValidationResult;
    /**
     * Consolidated error patterns for better maintainability
     */
    private getErrorPatterns;
    /**
     * Analyzes generic "J1QL Query is invalid" errors for specific issues
     */
    analyzeSyntaxError(query: string, _errorMessage: string): string;
    /**
     * Provides generic suggestions based on query structure
     */
    private getGenericSuggestions;
}
export {};
//# sourceMappingURL=j1ql-validator.d.ts.map