import type React from "react";
import type { AgentDetails, AgentMetadata } from "../../services/agentService";
import type { AiProfile } from "../../services/aiService";
import type { AgentSettingsMode } from "./useAgentSettingsData";
export type PendingAgentSettingsRef = React.MutableRefObject<{
    modelName?: string | null;
    mode?: AgentSettingsMode;
    profileId?: string | null;
    profileName?: string | null;
} | null>;
export declare function usePendingAgentSettings(input: {
    activeProfile: AiProfile | undefined;
    agentId?: string;
    mode: AgentSettingsMode;
    profiles: AiProfile[];
    selectedModelId: string | undefined;
}): {
    pendingSettingsRef: React.RefObject<{
        modelName?: string | null;
        mode?: AgentSettingsMode;
        profileId?: string | null;
        profileName?: string | null;
    } | null>;
    persistPendingSettingsIfNeeded: () => Promise<void>;
    getPendingRequestSettings: () => {
        mode: AgentSettingsMode;
        profileId: string;
        profileName: string;
        modelId: string | undefined;
    };
};
export declare function useAgentSettingsCommands(input: {
    activeProfile: AiProfile | undefined;
    agent: AgentDetails | undefined;
    agentMetadata: AgentMetadata | null;
    isLocalOnlyDraftAgent: boolean;
    pendingSettingsRef: PendingAgentSettingsRef;
    profiles: AiProfile[];
    readOnly: boolean;
    setActiveProfile: React.Dispatch<React.SetStateAction<AiProfile | undefined>>;
    setAgent: (next: React.SetStateAction<AgentDetails | undefined>) => void;
    setAgentMetadata: (next: React.SetStateAction<AgentMetadata | null>) => void;
    setMode: React.Dispatch<React.SetStateAction<AgentSettingsMode>>;
    setSelectedModelId: React.Dispatch<React.SetStateAction<string | undefined>>;
}): {
    handleModeSettingsChange: (value: string) => Promise<void>;
    handleProfileSettingsChange: (profileId: string) => Promise<void>;
    handleModelSettingsChange: (modelId: string) => Promise<void>;
};
