import type { AgentTemplate } from './templates/types';
import type { TrackEventFn } from '@levelcode/common/types/contracts/analytics';
import type { SendActionFn } from '@levelcode/common/types/contracts/client';
import type { PromptAiSdkStreamFn } from '@levelcode/common/types/contracts/llm';
import type { Logger } from '@levelcode/common/types/contracts/logger';
import type { Message } from '@levelcode/common/types/messages/levelcode-message';
import type { ToolSet } from 'ai';
export declare const getAgentStreamFromTemplate: (params: {
    agentId?: string;
    apiKey: string;
    clientSessionId: string;
    costMode?: string;
    fingerprintId: string;
    includeCacheControl?: boolean;
    localAgentTemplates: Record<string, AgentTemplate>;
    logger: Logger;
    messages: Message[];
    runId: string;
    signal: AbortSignal;
    template: AgentTemplate;
    tools: ToolSet;
    userId: string | undefined;
    userInputId: string;
    onCostCalculated?: (credits: number) => Promise<void>;
    promptAiSdkStream: PromptAiSdkStreamFn;
    sendAction: SendActionFn;
    trackEvent: TrackEventFn;
}) => ReturnType<PromptAiSdkStreamFn>;
