import type { LanguageCode } from '@longrun-ai/kernel/types/language';
import type { DialogFbrState } from '@longrun-ai/kernel/types/storage';
import { type FuncTool } from '../../tool';
import type { ChatMessage } from '../client';
export declare const FBR_LOW_NOISE_CONCLUSION_TOOL_NAME = "presentLowNoiseHighlyInformativeConclusion";
export declare const FBR_UNREASONABLE_SITUATION_TOOL_NAME = "presentUnreasonableSituation";
export type FbrConclusionToolName = typeof FBR_LOW_NOISE_CONCLUSION_TOOL_NAME | typeof FBR_UNREASONABLE_SITUATION_TOOL_NAME;
type FbrConclusionPhase = 'toolless' | 'finalization';
export type FbrConclusionInspection = Readonly<{
    kind: 'none';
}> | Readonly<{
    kind: 'accepted';
    callId: string;
    toolName: FbrConclusionToolName;
    content: string;
    genseq: number;
}> | Readonly<{
    kind: 'rejected';
    reason: string;
}>;
export declare function buildFbrConclusionTools(language: LanguageCode): readonly FuncTool[];
export declare function isFbrConclusionToolName(name: string): name is FbrConclusionToolName;
export declare function buildFbrToolAvailabilityNotice(language: LanguageCode, phase: FbrConclusionPhase): string;
export declare function buildFbrSystemPrompt(language: LanguageCode, phase: FbrConclusionPhase): string;
export declare function buildFbrConvergencePrompt(args: {
    iteration: number;
    total: number;
    language: LanguageCode;
}): string;
export declare function buildFbrFinalizationPrompt(args: {
    attempt: number;
    total: number;
    language: LanguageCode;
}): string;
export declare function buildFbrContextCautionFinalizationPrompt(args: {
    attempt: number;
    language: LanguageCode;
}): string;
export declare function buildProgrammaticFbrContextCriticalContent(args: {
    language: LanguageCode;
}): string;
export declare function buildProgrammaticFbrUnreasonableSituationContent(args: {
    language: LanguageCode;
    finalizationAttempts: number;
}): string;
export declare function inspectFbrConclusionAttempt(messages: readonly ChatMessage[]): FbrConclusionInspection;
export declare function createInitialFbrState(effort: number): DialogFbrState;
export declare function markFbrPromptDelivered(state: DialogFbrState): DialogFbrState;
export declare function isFbrFinalizationState(state: DialogFbrState): boolean;
export declare function isFbrContextCautionFinalizationState(state: DialogFbrState): boolean;
export declare function forceFbrContextCautionFinalizationState(state: DialogFbrState): DialogFbrState;
export declare function advanceFbrState(state: DialogFbrState): DialogFbrState | undefined;
export declare function buildFbrPromptForState(args: {
    state: DialogFbrState;
    tellaskContent: string;
    fromAgentId: string;
    toAgentId: string;
    language: LanguageCode;
    collectiveTargets?: string[];
}): string;
export {};
