import { type AskerCourseNumber } from '@longrun-ai/kernel/types/storage';
import { Dialog, DialogID, SideDialog } from '../../dialog';
import type { KernelDriverCalleeReplyTarget, KernelDriverDriveCallOptions } from './types';
export type CalleeReplyTarget = KernelDriverCalleeReplyTarget;
export type ScheduleDriveFn = (dialog: Dialog, options: KernelDriverDriveCallOptions) => void;
export declare function supplyResponseToAskerDialog(args: {
    callerDialog: Dialog;
    sideDialogId: DialogID;
    responseText: string;
    callType: 'A' | 'B' | 'C';
    callId: string;
    status?: 'completed' | 'failed';
    deliveryMode?: 'reply_tool' | 'direct_fallback';
    directFallbackSource?: 'saying' | 'thinking_only';
    replyResolution?: {
        callId: string;
        replyCallName: 'replyTellask' | 'replyTellaskSessionless' | 'replyTellaskBack';
    };
    calleeResponseRef?: {
        course: number;
        genseq: number;
    };
    askerCourseOverride?: AskerCourseNumber;
    scheduleDrive: ScheduleDriveFn;
    sideDialog?: SideDialog;
}): Promise<void>;
export declare function supplySideDialogResponseToSpecificAskerIfPendingV2(args: {
    sideDialog: SideDialog;
    responseText: string;
    responseGenseq: number;
    target: CalleeReplyTarget;
    deliveryMode?: 'reply_tool' | 'direct_fallback';
    directFallbackSource?: 'saying' | 'thinking_only';
    replyResolution?: {
        callId: string;
        replyCallName: 'replyTellask' | 'replyTellaskSessionless' | 'replyTellaskBack';
    };
    scheduleDrive: ScheduleDriveFn;
}): Promise<boolean>;
export declare function supplySideDialogResponseToAssignedAskerIfPendingV2(args: {
    sideDialog: SideDialog;
    responseText: string;
    responseGenseq: number;
    deliveryMode?: 'reply_tool' | 'direct_fallback';
    directFallbackSource?: 'saying' | 'thinking_only';
    replyResolution?: {
        callId: string;
        replyCallName: 'replyTellask' | 'replyTellaskSessionless' | 'replyTellaskBack';
    };
    allowExplicitReplyWithoutAssignmentAnchor?: boolean;
    scheduleDrive: ScheduleDriveFn;
}): Promise<boolean>;
