/**
 * Fluent query builder for log queries
 */
import type { LogQuery, QueryResult } from '../types.js';
/**
 * Log query builder for fluent query construction
 */
export declare class LogQueryBuilder {
    private query;
    /**
     * Set time range
     */
    timeRange(startTime: Date, endTime: Date): this;
    /**
     * Set log levels
     */
    levels(...levels: string[]): this;
    /**
     * Exclude log levels
     */
    excludeLevels(...levels: string[]): this;
    /**
     * Filter by message content
     */
    messageContains(text: string): this;
    /**
     * Filter by message regex
     */
    messageRegex(regex: RegExp): this;
    /**
     * Filter by correlation IDs
     */
    correlationIds(...ids: string[]): this;
    /**
     * Filter by sources
     */
    sources(...sources: string[]): this;
    /**
     * Filter by tags
     */
    tags(...tags: string[]): this;
    /**
     * Require tags
     */
    hasTags(): this;
    /**
     * Set pagination
     */
    limit(limit: number): this;
    /**
     * Set offset
     */
    offset(offset: number): this;
    /**
     * Set sorting
     */
    sortBy(field: 'timestamp' | 'level' | 'duration' | 'memory', order?: 'asc' | 'desc'): this;
    /**
     * Filter by minimum performance duration
     */
    durationMin(min: number): this;
    /**
     * Filter by memory usage threshold
     */
    memoryThreshold(threshold: number): this;
    /**
     * Execute the query
     */
    execute(): QueryResult;
    /**
     * Get query as JSON
     */
    toJSON(): LogQuery;
}
/**
 * Create a new log query builder
 */
export declare function createLogQuery(): LogQueryBuilder;
//# sourceMappingURL=query-builder.d.ts.map