import { type MutableRefObject, type SetStateAction } from "react";
import type { AgentDetails, QueuedPrompt } from "../../services/agentService";
import type { ActivePlaceholderInput } from "./useAgentPromptComposerHandlers";
type StateSetter<T> = (next: SetStateAction<T>) => void;
export declare function useAgentSubmitHandlers(input: {
    readOnly: boolean;
    isSubmitting: boolean;
    editContext: any;
    agent: AgentDetails | undefined;
    agentStub: Pick<AgentDetails, "id" | "status">;
    prompt: string;
    activePlaceholderInput: ActivePlaceholderInput | null;
    allPlaceholdersFilled: boolean;
    placeholderInputRef: MutableRefObject<any>;
    promptPlaceholderInputRef: MutableRefObject<any>;
    shouldSubmitFilledPlaceholderInputRef: MutableRefObject<boolean>;
    activeInlineDialogRef: MutableRefObject<any>;
    isWaitingRef: MutableRefObject<boolean>;
    lastNonHeartbeatUpdateAtRef: MutableRefObject<number>;
    clearStopGuard: () => void;
    supersedePendingApprovals: () => Promise<boolean>;
    hasPendingApprovals: () => boolean;
    registerSuppressedQueuedPrompt: (agentId: string, prompt: string) => string | null;
    clearSuppressedQueuedPrompt: (token: string | null) => void;
    cancelActiveInlineDialog: () => void;
    addOptimisticTranscriptMessage: (message: any) => void;
    removeOptimisticTranscriptMessage: (messageId: string) => void;
    getPendingRequestSettings: () => any;
    buildSubmitContext: (input: {
        profileName: string;
        liveContextWarning: string;
    }) => Promise<any>;
    handleSubmitResponse: (input: {
        response: any;
        tempMessageId: string;
        suppressedQueuedPromptToken: string | null;
    }) => void;
    persistPendingSettingsIfNeeded: () => Promise<void>;
    onInteractionSubmitted?: () => void | Promise<void>;
    setError: StateSetter<string | null>;
    setPrompt: (prompt: string) => void;
    setIsSubmitting: (isSubmitting: boolean) => void;
    setIsWaitingForResponse: (isWaitingForResponse: boolean) => void;
    setIsAgentThinking: (isAgentThinking: boolean) => void;
    setShouldAutoScroll: (shouldAutoScroll: boolean) => void;
    setPromptHistory: StateSetter<string[]>;
    setCurrentHistoryIndex: (index: number) => void;
}): {
    handleSubmit: (promptOverride?: string) => Promise<void>;
    handlePushQueuedPrompt: (queuedPrompt: Pick<QueuedPrompt, "id" | "prompt">) => Promise<void>;
    sendQuickMessage: (text: string) => Promise<void>;
};
export {};
