import type { DipclawConfig } from "../config/types.js";
import type { LlmClient } from "../llm/types.js";
import { BrowserManager } from "../browser/manager.js";
import { MemoryManager } from "./memory.js";
import { StoreManager } from "./store.js";
import type { ScheduledTask } from "./scheduler.js";
import type { Scheduler } from "./scheduler.js";
export declare class TaskRunner {
    private config;
    private llmClient;
    private browser;
    private browserActions;
    private memory;
    private store;
    private skillGenerator;
    private imageGenerator;
    private scheduler;
    constructor(config: DipclawConfig, llmClient: LlmClient, browser: BrowserManager, memory: MemoryManager, store: StoreManager);
    /** Set scheduler reference for auto-linking skills to tasks */
    setScheduler(scheduler: Scheduler): void;
    /** Run a scheduled task with learning loop */
    runTask(task: ScheduledTask, signal?: AbortSignal): Promise<string>;
    /** Try to auto-generate a skill from a successful LLM-driven task and link it */
    private tryAutoGenerateSkill;
    /** Format an execution report as readable text */
    private formatReport;
    /** Run an ad-hoc prompt in LLM-driven mode */
    runPrompt(prompt: string, taskName?: string): Promise<string>;
    private runLlmDriven;
    private executeTool;
    private executeMemoryAction;
    private loadInstalledSkillsIndex;
    private buildSystemPrompt;
}
