/**
 * Advanced search tool handlers
 */
import { BaseToolHandler, type ToolArgs, type ToolResponse } from './base.js';
import type { FirewallaClient } from '../../firewalla/client.js';
import type { ScoringCorrelationParams } from '../../validation/field-mapper.js';
export interface BaseSearchArgs extends ToolArgs {
    query: string;
    limit: number;
    offset?: number;
    cursor?: string;
    sort_by?: string;
    sort_order?: 'asc' | 'desc';
    group_by?: string;
    aggregate?: boolean;
    force_refresh?: boolean;
}
export interface SearchFlowsArgs extends BaseSearchArgs {
    time_range?: {
        start?: string;
        end?: string;
    };
    geographic_filters?: {
        countries?: string[];
        continents?: string[];
        regions?: string[];
        cities?: string[];
        asns?: string[];
        hosting_providers?: string[];
        exclude_vpn?: boolean;
        exclude_cloud?: boolean;
        min_risk_score?: number;
    };
    include_analytics?: boolean;
}
export interface SearchAlarmsArgs extends BaseSearchArgs {
    time_range?: {
        start?: string;
        end?: string;
    };
}
export interface SearchRulesArgs extends BaseSearchArgs {
}
export interface SearchDevicesArgs extends BaseSearchArgs {
    time_range?: {
        start?: string;
        end?: string;
    };
}
export interface SearchTargetListsArgs extends BaseSearchArgs {
}
export interface SearchCrossReferenceArgs extends ToolArgs {
    primary_query: string;
    secondary_queries: string[];
    correlation_field: string;
    limit?: number;
}
export interface SearchEnhancedCrossReferenceArgs extends ToolArgs {
    primary_query: string;
    secondary_queries: string[];
    correlation_params: ScoringCorrelationParams;
    limit?: number;
}
export interface GetCorrelationSuggestionsArgs extends ToolArgs {
    primary_query: string;
    secondary_queries: string[];
}
export interface SearchAlarmsByGeographyArgs extends ToolArgs {
    query?: string;
    geographic_filters?: {
        countries?: string[];
        continents?: string[];
        regions?: string[];
        high_risk_countries?: boolean;
        exclude_known_providers?: boolean;
        threat_analysis?: boolean;
    };
    limit: number;
    sort_by?: string;
    group_by?: string;
}
export interface GetGeographicStatisticsArgs extends ToolArgs {
    entity_type: 'flows' | 'alarms';
    time_range?: {
        start: string;
        end: string;
    };
    analysis_type?: 'summary' | 'detailed' | 'threat_intelligence';
    group_by?: 'country' | 'continent' | 'region' | 'asn' | 'provider';
    limit?: number;
}
export declare class SearchFlowsHandler extends BaseToolHandler {
    name: string;
    description: string;
    category: "search";
    constructor();
    execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchAlarmsHandler extends BaseToolHandler {
    name: string;
    description: string;
    category: "search";
    constructor();
    execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchRulesHandler extends BaseToolHandler {
    name: string;
    description: string;
    category: "search";
    constructor();
    execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchDevicesHandler extends BaseToolHandler {
    name: string;
    description: string;
    category: "search";
    execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchTargetListsHandler extends BaseToolHandler {
    name: string;
    description: string;
    category: "search";
    constructor();
    execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchCrossReferenceHandler extends BaseToolHandler {
    name: string;
    description: string;
    category: "search";
    constructor();
    execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchEnhancedCrossReferenceHandler extends BaseToolHandler {
    name: string;
    description: string;
    category: "search";
    constructor();
    execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
    /**
     * Extract a simple summary from correlation item data
     */
    private extractItemSummary;
    /**
     * Assess the overall quality of correlations found
     */
    private assessCorrelationQuality;
    /**
     * Generate actionable recommendations based on correlation results
     */
    private generateCorrelationRecommendations;
}
export declare class GetCorrelationSuggestionsHandler extends BaseToolHandler {
    name: string;
    description: string;
    category: "search";
    constructor();
    execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchAlarmsByGeographyHandler extends BaseToolHandler {
    name: string;
    description: string;
    category: "search";
    constructor();
    execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class GetGeographicStatisticsHandler extends BaseToolHandler {
    name: string;
    description: string;
    category: "search";
    constructor();
    execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
//# sourceMappingURL=search.d.ts.map