import type { ContextItemKind } from '@j1nn0/agent-context-guard'; import type { ExtensionContext, InputEvent } from '@earendil-works/pi-coding-agent'; import { type RequestTracker } from './request.js'; import type { RuntimeState } from './types.js'; export declare const EXTRACTION_TIMEOUT_MS = 20000; export declare const EXTRACTOR_SYSTEM_PROMPT: string; type TextBlock = { readonly type: 'text'; readonly text: string; }; export interface ExtractionAutomaticItem { readonly id: string; readonly kind: ContextItemKind; readonly content: string; } export interface ExtractedItem { readonly content: string; readonly kind: ContextItemKind; readonly critical: boolean; } export interface ExtractionOutput { readonly add: readonly ExtractedItem[]; readonly removeAutoItemIds: readonly string[]; } interface ExtractionDependencies { readonly getEpoch: () => number; readonly getState: () => RuntimeState; readonly clearPendingSnapshot: () => void; readonly persist: () => void; readonly requestTracker: RequestTracker; } export interface ExtractionController { handleInput(event: InputEvent, ctx: ExtensionContext): Promise; abortActive(): void; } export declare function isPlainObject(value: unknown): value is Record; export declare function isTextBlock(value: unknown): value is TextBlock; export type AssistantTextResult = { readonly ok: true; readonly text: string; } | { readonly ok: false; readonly failureKind: 'aborted' | 'provider' | 'invalid-response'; }; export type ExtractionParseResult = { readonly ok: true; readonly output: ExtractionOutput; } | { readonly ok: false; readonly failureKind: 'aborted' | 'provider' | 'invalid-response' | 'invalid-output'; }; export declare function parseAssistantText(response: unknown): AssistantTextResult; export declare function parseExtractionResponse(response: unknown, userMessage: string, existingAutomaticItems: readonly ExtractionAutomaticItem[]): ExtractionParseResult; export declare function createExtractionPayload(text: string, automaticItems: readonly ExtractionAutomaticItem[]): string; export declare function createExtractionController(dependencies: ExtractionDependencies): ExtractionController; export {}; //# sourceMappingURL=extraction.d.ts.map