/**
 * Module: dialog-factory
 *
 * Factory for creating Dialog instances with proper type hierarchy.
 * Provides a single point of dialog creation to ensure consistent initialization.
 */
import type { CallSiteCourseNo, CallSiteGenseqNo } from '@longrun-ai/kernel/types/storage';
import { Dialog, DialogID, DialogInitParams, DialogStore, MainDialog, SideDialog } from './dialog';
/**
 * Factory for creating Dialog instances.
 * Abstracts the creation of MainDialog and SideDialog with proper type hierarchy.
 */
export declare class DialogFactory {
    /**
     * Create a new MainDialog instance.
     */
    static createMainDialog(dlgStore: DialogStore, taskDocPath: string, agentId: string, id?: DialogID, initialState?: DialogInitParams['initialState']): MainDialog;
    /**
     * Create a new SideDialog instance.
     */
    static createSideDialog(askerDialog: Dialog, taskDocPath: string, targetAgentId: string, mentionList: string[] | undefined, tellaskContent: string, options: {
        callName: 'tellask' | 'tellaskSessionless' | 'freshBootsReasoning';
        originMemberId: string;
        askerDialogId: string;
        callId: string;
        callSiteCourse: CallSiteCourseNo;
        callSiteGenseq: CallSiteGenseqNo;
        sessionSlug?: string;
        collectiveTargets?: string[];
        effectiveFbrEffort?: number;
    }, initialState?: DialogInitParams['initialState']): SideDialog;
    /**
     * Check if a dialog is a MainDialog.
     */
    static isMainDialog(dialog: Dialog): dialog is MainDialog;
    /**
     * Check if a dialog is a SideDialog.
     */
    static isSideDialog(dialog: Dialog): dialog is SideDialog;
}
