import { Email } from '../types.js';
export interface ImprovedQueryOptions {
    search?: string;
    filter?: string;
    from?: string | string[];
    to?: string | string[];
    subject?: string;
    body?: string;
    aliases?: Record<string, string[]>;
    hasAttachments?: boolean;
    isRead?: boolean;
    importance?: 'low' | 'normal' | 'high';
    categories?: string[];
    conversationId?: string;
    dateRange?: {
        start?: string;
        end?: string;
    };
    folder?: string;
    limit?: number;
    skip?: number;
    orderBy?: string;
    includeBody?: boolean;
    maxTokens?: number;
}
export declare class ImprovedQueryBuilder {
    private userEmail;
    private mailService;
    private readonly DEFAULT_MAX_TOKENS;
    constructor(userEmail: string);
    /**
     * Builds an improved filter that handles partial matches and complex scenarios
     */
    buildImprovedFilter(options: ImprovedQueryOptions): string;
    /**
     * Build email conditions with support for partial matches
     */
    private buildEmailConditions;
    /**
     * Build recipient conditions with simplified syntax to avoid errors
     */
    private buildRecipientConditions;
    /**
     * Expand search terms with aliases
     */
    private expandWithAliases;
    /**
     * Escape special characters in filter values
     */
    private escapeFilterValue;
    /**
     * Execute query with automatic token management
     */
    executeWithTokenManagement(options: ImprovedQueryOptions): Promise<{
        emails: Email[];
        strategy: string;
        hadTokenIssue: boolean;
        suggestions?: string[];
    }>;
    private hasStructuredFilters;
    private getSelectFields;
    private describeStrategy;
}
//# sourceMappingURL=improvedQueryBuilder.d.ts.map