import { complete, type Api, type Model } from "@earendil-works/pi-ai";
import type { ResolvedProviderAuth } from "../../agents/model-auth.js";
import type { KaijiBotConfig } from "../../config/config.js";
import type { PersonaTree } from "../types.js";
import type { Fragment } from "./fragment-types.js";
export type FragmentCollectorDeps = {
    complete: typeof complete;
    prepareModel: (cfg: KaijiBotConfig, modelRef?: string) => Promise<{
        model: Model<Api>;
        auth: ResolvedProviderAuth;
    } | {
        error: string;
    }>;
};
export declare function createDefaultFragmentCollectorDeps(): FragmentCollectorDeps;
export declare function shouldSkipTurn(userText: string): boolean;
/**
 * Extract 0-2 thinking pattern fragments from a single conversation turn.
 *
 * This function **never throws** — all errors are caught and result in an
 * empty array being returned.
 */
export declare function collectFragments(userText: string, assistantText: string, persona: PersonaTree, config: KaijiBotConfig, deps: FragmentCollectorDeps): Promise<Fragment[]>;
export declare function buildFragmentPrompt(userText: string, assistantText: string, persona: PersonaTree): string;
export declare function parseFragments(text: string): Fragment[];
