/**
 * Pipeline Manifest SQLite Implementation
 *
 * Reimplements all 14 pipeline manifest operations using Drizzle ORM +
 * SQLite (tasks.db pipeline_manifest table) instead of JSONL file I/O.
 *
 * Provides a one-time migration function to import existing MANIFEST.jsonl
 * entries into the new table.
 *
 * @task T5581
 * @epic T5576
 */
import type { EngineResult } from '../engine-result.js';
import { type ContradictionDetail, type ExtendedManifestEntry, filterManifestEntries, type ResearchFilter, type SupersededDetail } from './index.js';
export type ManifestEntry = ExtendedManifestEntry;
export type { ContradictionDetail, ResearchFilter, SupersededDetail };
export { filterManifestEntries };
interface PipelineManifestListParams extends ResearchFilter {
    type?: string;
    offset?: number;
}
/** pipeline.manifest.show - Get manifest entry details by ID */
export declare function pipelineManifestShow(researchId: string, projectRoot?: string): Promise<EngineResult>;
/** pipeline.manifest.list - List manifest entries with filters */
export declare function pipelineManifestList(params: PipelineManifestListParams, projectRoot?: string): Promise<EngineResult>;
/** pipeline.manifest.find - Find manifest entries by text (LIKE search on content + type) */
export declare function pipelineManifestFind(query: string, options?: {
    confidence?: number;
    limit?: number;
}, projectRoot?: string): Promise<EngineResult>;
/** pipeline.manifest.pending - Get pending manifest items */
export declare function pipelineManifestPending(epicId?: string, projectRoot?: string): Promise<EngineResult>;
/** pipeline.manifest.stats - Manifest statistics */
export declare function pipelineManifestStats(epicId?: string, projectRoot?: string): Promise<EngineResult>;
/** pipeline.manifest.read - Read manifest entries with optional filter */
export declare function pipelineManifestRead(filter?: ResearchFilter, projectRoot?: string): Promise<EngineResult>;
/** pipeline.manifest.append - Append entry to pipeline_manifest table */
export declare function pipelineManifestAppend(entry: ExtendedManifestEntry, projectRoot?: string): Promise<EngineResult>;
/** pipeline.manifest.archive - Archive old manifest entries by date */
export declare function pipelineManifestArchive(beforeDate: string, projectRoot?: string): Promise<EngineResult>;
/** pipeline.manifest.compact - Dedup by contentHash (keep newest by createdAt) */
export declare function pipelineManifestCompact(projectRoot?: string): Promise<EngineResult>;
/** pipeline.manifest.validate - Validate manifest entries for a task */
export declare function pipelineManifestValidate(taskId: string, projectRoot?: string): Promise<EngineResult>;
/** pipeline.manifest.contradictions - Find entries with overlapping topics but conflicting key_findings */
export declare function pipelineManifestContradictions(projectRoot?: string, params?: {
    topic?: string;
}): Promise<EngineResult<{
    contradictions: ContradictionDetail[];
}>>;
/** pipeline.manifest.superseded - Identify entries replaced by newer work on same topic */
export declare function pipelineManifestSuperseded(projectRoot?: string, params?: {
    topic?: string;
}): Promise<EngineResult<{
    superseded: SupersededDetail[];
}>>;
/** pipeline.manifest.link - Link manifest entry to a task */
export declare function pipelineManifestLink(taskId: string, researchId: string, notes?: string, projectRoot?: string): Promise<EngineResult>;
/**
 * Read all manifest entries from the pipeline_manifest table.
 * Replaces readManifestEntries() from pipeline-manifest-compat.
 */
export declare function readManifestEntries(projectRoot?: string): Promise<ExtendedManifestEntry[]>;
/**
 * Filter manifest entries by criteria (alias for backward compatibility).
 */
export declare function filterEntries(entries: ExtendedManifestEntry[], filter: ResearchFilter): ExtendedManifestEntry[];
/**
 * Distill a manifest entry to brain.db observation (Phase 3, pending).
 */
export declare function distillManifestEntry(_entryId: string, _projectRoot?: string): Promise<EngineResult>;
/**
 * Migrate existing .cleo/MANIFEST.jsonl entries into the pipeline_manifest table.
 * Skips entries that already exist (by id). Renames MANIFEST.jsonl to
 * MANIFEST.jsonl.migrated when done.
 *
 * @returns Count of migrated and skipped entries.
 */
export declare function migrateManifestJsonlToSqlite(projectRoot?: string): Promise<{
    migrated: number;
    skipped: number;
}>;
//# sourceMappingURL=pipeline-manifest-sqlite.d.ts.map