import { type BridgeOptions } from "../bridge/file-bridge.js"; import { type ProjectContextDocument, type ProjectContextKind, ProjectContextRepository, type ProjectContextRepositoryOptions } from "../context/project-context-store.js"; interface SnapshotClip { nodeId: string; name: string; startSeconds: number; endSeconds: number; inPointSeconds: number; outPointSeconds: number; speed?: number; trackType: "video" | "audio"; trackIndex: number; sourceId?: string; sourceName?: string; mediaPath?: string; offline?: boolean; } export interface PremiereContextSnapshot { projectName: string; projectPath?: string; sequence: { id: string; name: string; durationSeconds: number; clips: SnapshotClip[]; truncated: boolean; }; } export interface ContextEnrichmentInput { id?: string; kind: ProjectContextKind; name?: string; text: string; keywords?: string[]; sequence_id?: string; source_id?: string; timeline_item_id?: string; start_seconds?: number; end_seconds?: number; track_type?: "video" | "audio"; track_index?: number; source_revision?: string; timeline_revision?: string; metadata?: Record; } interface MediaFingerprint { mediaPathHash?: string; size?: number; modifiedMs?: number; } type FingerprintMedia = (mediaPath: string | undefined) => Promise; export declare function buildContextDocumentFromSnapshot(snapshot: PremiereContextSnapshot, existing?: ProjectContextDocument, fingerprint?: FingerprintMedia): Promise<{ document: ProjectContextDocument; invalidatedRecords: number; }>; export declare function enrichContextDocument(document: ProjectContextDocument, inputs: ContextEnrichmentInput[], replace?: boolean): { document: ProjectContextDocument; upserted: number; }; export interface ProjectContextToolDependencies { repository?: ProjectContextRepository; repositoryOptions?: ProjectContextRepositoryOptions; captureSnapshot?: () => Promise<{ success: boolean; data?: unknown; error?: string; }>; } export declare function getProjectContextTools(bridgeOptions: BridgeOptions, dependencies?: ProjectContextToolDependencies): { manage_project_context: { description: string; parameters: { type: "object"; properties: { action: { type: string; enum: string[]; description: string; }; project_id: { type: string; description: string; }; replace: { type: string; description: string; }; records: { type: string; items: { type: string; properties: { id: { type: string; description: string; }; kind: { type: string; enum: string[]; }; name: { type: string; }; text: { type: string; description: string; }; keywords: { type: string; items: { type: string; }; }; sequence_id: { type: string; }; source_id: { type: string; }; timeline_item_id: { type: string; }; start_seconds: { type: string; }; end_seconds: { type: string; }; track_type: { type: string; enum: string[]; }; track_index: { type: string; }; source_revision: { type: string; description: string; }; timeline_revision: { type: string; description: string; }; metadata: { type: string; description: string; }; }; required: string[]; }; description: string; }; }; required: string[]; }; handler: (args: { action: "capture" | "enrich" | "status" | "clear"; project_id?: string; replace?: boolean; records?: ContextEnrichmentInput[]; }) => Promise<{ success: boolean; data?: unknown; error?: string; }>; }; search_project_context: { description: string; parameters: { type: "object"; properties: { project_id: { type: string; description: string; }; query: { type: string; description: string; }; sequence_id: { type: string; description: string; }; kinds: { type: string; items: { type: string; enum: string[]; }; description: string; }; max_results: { type: string; description: string; }; }; required: string[]; }; handler: (args: { project_id: string; query: string; sequence_id?: string; kinds?: ProjectContextKind[]; max_results?: number; }) => Promise<{ success: boolean; error: string; data?: undefined; } | { success: boolean; data: { projectId: string; revision: string; sourceRevision: string; timelineRevision: string; results: { score: number; matchedTerms: string[]; id: string; kind: ProjectContextKind; name: string; evidence: string; keywords: string[]; sequenceId: string | undefined; sourceId: string | undefined; timelineItemId: string | undefined; startSeconds: number | undefined; endSeconds: number | undefined; trackType: "video" | "audio" | undefined; trackIndex: number | undefined; sourceRevision: string | undefined; timelineItemRevision: string | undefined; metadata: Record | undefined; }[]; }; error?: undefined; }>; }; create_context_edit_plan: { description: string; parameters: { type: "object"; properties: { project_id: { type: string; description: string; }; intent: { type: string; description: string; }; sequence_id: { type: string; description: string; }; strategy: { type: string; enum: string[]; description: string; }; max_candidates: { type: string; description: string; }; }; required: string[]; }; handler: (args: { project_id: string; intent: string; sequence_id?: string; strategy?: "rough_cut" | "select_ranges" | "review"; max_candidates?: number; }) => Promise<{ success: boolean; error: string; data?: undefined; } | { success: boolean; data: { applied: boolean; projectId: string; intent: string; strategy: "rough_cut" | "select_ranges" | "review"; expectedContextRevision: string; expectedTimelineRevision: string; candidates: { evidenceId: string; score: number; kind: ProjectContextKind; name: string; evidence: string; sourceId: string | undefined; timelineItemId: string | undefined; startSeconds: number | undefined; endSeconds: number | undefined; sourceRevision: string | undefined; }[]; nextSteps: string[]; }; error?: undefined; }>; }; }; export {}; //# sourceMappingURL=project-context.d.ts.map