import { type ProviderName } from "../../providers"; export declare class ConversationClassifier { readonly state: import("@threadbase-sh/scanner").JsonlParseState; hasMessages: boolean; isSubagent: boolean; parentConversationId: string | null; id: string; provider: ProviderName; private explicitClaudeIdentity; private sawIdentity; private readonly fileStem; /** * Nothing later in the file can change the answer: `hasMessages` only ever * goes false→true, and identity settles at Codex's line-0 `session_meta` or * the first Claude line carrying `isSidechain`. A file with no renderable * message is never settled and is read in full — that is how `hasMessages` * earns a definitive 0, and such files are small. */ get settled(): boolean; constructor(filePath: string, provider?: ProviderName); append(raw: string): import("@threadbase-sh/scanner").ConversationMessage | null; } /** Bounded memory, using exactly the adapters used by conversation detail. */ export declare function classifyConversationFile(filePath: string, provider?: ProviderName): ConversationClassifier; //# sourceMappingURL=classification.d.ts.map