import type { ExecuteToolCallParams } from './tools/tool-executor';
import type { AgentTemplate, PublicAgentState } from '@levelcode/common/types/agent-template';
import type { HandleStepsLogChunkFn, SendActionFn } from '@levelcode/common/types/contracts/client';
import type { AddAgentStepFn } from '@levelcode/common/types/contracts/database';
import type { Logger } from '@levelcode/common/types/contracts/logger';
import type { ParamsExcluding } from '@levelcode/common/types/function-params';
import type { PrintModeEvent } from '@levelcode/common/types/print-mode';
import type { AgentState } from '@levelcode/common/types/session-state';
export declare const runIdToStepAll: Set<string>;
export declare function clearAgentGeneratorCache(params: {
    logger: Logger;
}): void;
export declare function runProgrammaticStep(params: {
    addAgentStep: AddAgentStepFn;
    agentState: AgentState;
    clientSessionId: string;
    fingerprintId: string;
    handleStepsLogChunk: HandleStepsLogChunkFn;
    localAgentTemplates: Record<string, AgentTemplate>;
    logger: Logger;
    nResponses?: string[];
    onResponseChunk: (chunk: string | PrintModeEvent) => void;
    prompt: string | undefined;
    repoId: string | undefined;
    repoUrl: string | undefined;
    stepNumber: number;
    stepsComplete: boolean;
    template: AgentTemplate;
    toolCallParams: Record<string, any> | undefined;
    sendAction: SendActionFn;
    system: string | undefined;
    userId: string | undefined;
    userInputId: string;
} & Omit<ExecuteToolCallParams, 'toolName' | 'input' | 'autoInsertEndStepParam' | 'excludeToolFromMessageHistory' | 'agentContext' | 'agentStepId' | 'agentTemplate' | 'fullResponse' | 'previousToolCallFinished' | 'fileProcessingState' | 'toolCallId' | 'toolCalls' | 'toolResults' | 'toolResultsToAddAfterStream'> & ParamsExcluding<AddAgentStepFn, 'agentRunId' | 'stepNumber' | 'credits' | 'childRunIds' | 'status' | 'startTime' | 'messageId'>): Promise<{
    agentState: AgentState;
    endTurn: boolean;
    stepNumber: number;
    generateN?: number;
}>;
export declare const getPublicAgentState: (agentState: AgentState & Required<Pick<AgentState, "runId">>) => PublicAgentState;
