/**
 * Recall 도구 Zod 스키마 및 파생 타입 (recall-tool.ts에서 분리, #350).
 */
import { z } from 'zod';
import type { EmbeddingProvider } from '../../../shared/types/index.js';
import type { HybridSearchEngine } from '../../search/algorithms/hybrid-search-engine.js';
import type { SearchEngine } from '../../search/algorithms/search-engine.js';
import { recallTelemetryRetrievalStrategy } from './recall-tool-telemetry.js';
/**
 * Provider 필터 정규화 유틸리티
 * 빈 배열인 경우 undefined로 변환하여 모든 provider 검색을 의미
 *
 * @param providerFilter - 원본 provider 필터 (빈 배열 가능)
 * @returns 정규화된 provider 필터 (undefined 또는 비어있지 않은 배열)
 */
export declare function normalizeProviderFilter(providerFilter: EmbeddingProvider[] | undefined): EmbeddingProvider[] | undefined;
/** hybrid vs text-only 검색 엔진 반환형 공통 처리용 */
export type RecallHybridOrTextSearchResult = Awaited<ReturnType<HybridSearchEngine['search']>> | Awaited<ReturnType<SearchEngine['search']>>;
export type RecallTelemetryRetrievalStrategy = ReturnType<typeof recallTelemetryRetrievalStrategy>;
export declare const RecallSchema: z.ZodEffects<z.ZodObject<{
    query: z.ZodOptional<z.ZodString>;
    type: z.ZodOptional<z.ZodEnum<["working", "episodic", "semantic", "procedural", "core", "vault"]>>;
    key: z.ZodOptional<z.ZodString>;
    agent_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
    memory_types: z.ZodOptional<z.ZodArray<z.ZodEnum<["working", "episodic", "semantic", "procedural", "core", "vault"]>, "many">>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    privacy_scope: z.ZodOptional<z.ZodArray<z.ZodEnum<["private", "team", "public"]>, "many">>;
    time_from: z.ZodOptional<z.ZodString>;
    time_to: z.ZodOptional<z.ZodString>;
    pinned: z.ZodOptional<z.ZodBoolean>;
    importance_min: z.ZodOptional<z.ZodNumber>;
    importance_max: z.ZodOptional<z.ZodNumber>;
    has_reflection_notes: z.ZodOptional<z.ZodBoolean>;
    workflow_name: z.ZodOptional<z.ZodString>;
    skill_name: z.ZodOptional<z.ZodString>;
    match_trigger_conditions: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    trigger_context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    return_format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["full", "steps_only"]>>>;
    limit: z.ZodDefault<z.ZodNumber>;
    vector_weight: z.ZodOptional<z.ZodNumber>;
    text_weight: z.ZodOptional<z.ZodNumber>;
    enable_hybrid: z.ZodOptional<z.ZodBoolean>;
    include_metadata: z.ZodOptional<z.ZodBoolean>;
    provider_filter: z.ZodOptional<z.ZodArray<z.ZodEnum<["tfidf", "lightweight", "minilm", "openai", "gemini"]>, "many">>;
    auto_set_anchor: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    include_neighbors: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    neighbors_limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    neighbors_per_item: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    neighbors_similarity_threshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    version_filter: z.ZodOptional<z.ZodEnum<["latest_only", "all_versions", "specific_version"]>>;
    version_series_id: z.ZodOptional<z.ZodString>;
    version_number: z.ZodOptional<z.ZodNumber>;
    include_version_chain: z.ZodOptional<z.ZodBoolean>;
    /** 다중 에이전트: 소유자 ID 필터 (단일 또는 배열). 미설정 시 전체 조회 */
    owner_id: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
    /** Memori Attribution: 프로세스 ID 필터 (Issue #87) */
    process_id: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
    /** Memori Attribution: 세션 ID 필터 (Issue #87) */
    session_id: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
    /** Project-scoped Memory: 프로젝트 ID 필터 (Issue #81) */
    project_id: z.ZodOptional<z.ZodString>;
    include_diff_with: z.ZodOptional<z.ZodString>;
    include_score_breakdown: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
    limit: number;
    include_score_breakdown: boolean;
    agent_id: string;
    match_trigger_conditions: boolean;
    return_format: "full" | "steps_only";
    auto_set_anchor: boolean;
    include_neighbors: boolean;
    neighbors_limit: number;
    neighbors_per_item: number;
    neighbors_similarity_threshold: number;
    key?: string | undefined;
    workflow_name?: string | undefined;
    skill_name?: string | undefined;
    type?: "working" | "episodic" | "semantic" | "procedural" | "core" | "vault" | undefined;
    project_id?: string | undefined;
    query?: string | undefined;
    tags?: string[] | undefined;
    privacy_scope?: ("private" | "team" | "public")[] | undefined;
    pinned?: boolean | undefined;
    time_from?: string | undefined;
    time_to?: string | undefined;
    has_reflection_notes?: boolean | undefined;
    process_id?: string | string[] | undefined;
    context?: Record<string, unknown> | undefined;
    vector_weight?: number | undefined;
    owner_id?: string | string[] | undefined;
    version_series_id?: string | undefined;
    session_id?: string | string[] | undefined;
    importance_min?: number | undefined;
    importance_max?: number | undefined;
    version_filter?: "latest_only" | "all_versions" | "specific_version" | undefined;
    version_number?: number | undefined;
    include_version_chain?: boolean | undefined;
    include_diff_with?: string | undefined;
    memory_types?: ("working" | "episodic" | "semantic" | "procedural" | "core" | "vault")[] | undefined;
    trigger_context?: Record<string, unknown> | undefined;
    text_weight?: number | undefined;
    enable_hybrid?: boolean | undefined;
    include_metadata?: boolean | undefined;
    provider_filter?: ("openai" | "gemini" | "tfidf" | "lightweight" | "minilm")[] | undefined;
}, {
    key?: string | undefined;
    workflow_name?: string | undefined;
    skill_name?: string | undefined;
    type?: "working" | "episodic" | "semantic" | "procedural" | "core" | "vault" | undefined;
    project_id?: string | undefined;
    query?: string | undefined;
    tags?: string[] | undefined;
    limit?: number | undefined;
    include_score_breakdown?: boolean | undefined;
    privacy_scope?: ("private" | "team" | "public")[] | undefined;
    pinned?: boolean | undefined;
    time_from?: string | undefined;
    time_to?: string | undefined;
    has_reflection_notes?: boolean | undefined;
    process_id?: string | string[] | undefined;
    context?: Record<string, unknown> | undefined;
    vector_weight?: number | undefined;
    agent_id?: string | undefined;
    owner_id?: string | string[] | undefined;
    version_series_id?: string | undefined;
    session_id?: string | string[] | undefined;
    importance_min?: number | undefined;
    importance_max?: number | undefined;
    version_filter?: "latest_only" | "all_versions" | "specific_version" | undefined;
    version_number?: number | undefined;
    include_version_chain?: boolean | undefined;
    include_diff_with?: string | undefined;
    memory_types?: ("working" | "episodic" | "semantic" | "procedural" | "core" | "vault")[] | undefined;
    match_trigger_conditions?: boolean | undefined;
    trigger_context?: Record<string, unknown> | undefined;
    return_format?: "full" | "steps_only" | undefined;
    text_weight?: number | undefined;
    enable_hybrid?: boolean | undefined;
    include_metadata?: boolean | undefined;
    provider_filter?: ("openai" | "gemini" | "tfidf" | "lightweight" | "minilm")[] | undefined;
    auto_set_anchor?: boolean | undefined;
    include_neighbors?: boolean | undefined;
    neighbors_limit?: number | undefined;
    neighbors_per_item?: number | undefined;
    neighbors_similarity_threshold?: number | undefined;
}>, {
    limit: number;
    include_score_breakdown: boolean;
    agent_id: string;
    match_trigger_conditions: boolean;
    return_format: "full" | "steps_only";
    auto_set_anchor: boolean;
    include_neighbors: boolean;
    neighbors_limit: number;
    neighbors_per_item: number;
    neighbors_similarity_threshold: number;
    key?: string | undefined;
    workflow_name?: string | undefined;
    skill_name?: string | undefined;
    type?: "working" | "episodic" | "semantic" | "procedural" | "core" | "vault" | undefined;
    project_id?: string | undefined;
    query?: string | undefined;
    tags?: string[] | undefined;
    privacy_scope?: ("private" | "team" | "public")[] | undefined;
    pinned?: boolean | undefined;
    time_from?: string | undefined;
    time_to?: string | undefined;
    has_reflection_notes?: boolean | undefined;
    process_id?: string | string[] | undefined;
    context?: Record<string, unknown> | undefined;
    vector_weight?: number | undefined;
    owner_id?: string | string[] | undefined;
    version_series_id?: string | undefined;
    session_id?: string | string[] | undefined;
    importance_min?: number | undefined;
    importance_max?: number | undefined;
    version_filter?: "latest_only" | "all_versions" | "specific_version" | undefined;
    version_number?: number | undefined;
    include_version_chain?: boolean | undefined;
    include_diff_with?: string | undefined;
    memory_types?: ("working" | "episodic" | "semantic" | "procedural" | "core" | "vault")[] | undefined;
    trigger_context?: Record<string, unknown> | undefined;
    text_weight?: number | undefined;
    enable_hybrid?: boolean | undefined;
    include_metadata?: boolean | undefined;
    provider_filter?: ("openai" | "gemini" | "tfidf" | "lightweight" | "minilm")[] | undefined;
}, {
    key?: string | undefined;
    workflow_name?: string | undefined;
    skill_name?: string | undefined;
    type?: "working" | "episodic" | "semantic" | "procedural" | "core" | "vault" | undefined;
    project_id?: string | undefined;
    query?: string | undefined;
    tags?: string[] | undefined;
    limit?: number | undefined;
    include_score_breakdown?: boolean | undefined;
    privacy_scope?: ("private" | "team" | "public")[] | undefined;
    pinned?: boolean | undefined;
    time_from?: string | undefined;
    time_to?: string | undefined;
    has_reflection_notes?: boolean | undefined;
    process_id?: string | string[] | undefined;
    context?: Record<string, unknown> | undefined;
    vector_weight?: number | undefined;
    agent_id?: string | undefined;
    owner_id?: string | string[] | undefined;
    version_series_id?: string | undefined;
    session_id?: string | string[] | undefined;
    importance_min?: number | undefined;
    importance_max?: number | undefined;
    version_filter?: "latest_only" | "all_versions" | "specific_version" | undefined;
    version_number?: number | undefined;
    include_version_chain?: boolean | undefined;
    include_diff_with?: string | undefined;
    memory_types?: ("working" | "episodic" | "semantic" | "procedural" | "core" | "vault")[] | undefined;
    match_trigger_conditions?: boolean | undefined;
    trigger_context?: Record<string, unknown> | undefined;
    return_format?: "full" | "steps_only" | undefined;
    text_weight?: number | undefined;
    enable_hybrid?: boolean | undefined;
    include_metadata?: boolean | undefined;
    provider_filter?: ("openai" | "gemini" | "tfidf" | "lightweight" | "minilm")[] | undefined;
    auto_set_anchor?: boolean | undefined;
    include_neighbors?: boolean | undefined;
    neighbors_limit?: number | undefined;
    neighbors_per_item?: number | undefined;
    neighbors_similarity_threshold?: number | undefined;
}>;
/** Recall 도구 파라미터 타입 (Zod 스키마 추론) */
export type RecallParams = z.infer<typeof RecallSchema>;
//# sourceMappingURL=recall-tool-schema.d.ts.map