import type { Engine, EngineIdentityPort, EngineRuntimePort } from './engine/engine.js';
import type { CoreMessage } from 'ai';
import { type SystemPromptSnapshot } from './prompt/build-system-prompt.js';
import { YagrRunEngine } from './runtime/run-engine.js';
import type { DeployedWorkflow, GeneratedWorkflow, YagrRunOptions, YagrRunResult, WorkflowSpec, WorkflowValidationResult } from './types.js';
type YagrRunEngineLike = Pick<YagrRunEngine, 'execute'>;
interface YagrSessionAgentDependencies {
    buildPromptSnapshot?: (engine: EngineIdentityPort) => SystemPromptSnapshot;
    createRunner?: (engine: EngineRuntimePort, history: readonly CoreMessage[], systemPrompt: string) => YagrRunEngineLike;
}
export declare class YagrSessionAgent {
    protected readonly runtimeEngine: EngineRuntimePort;
    private readonly dependencies;
    private readonly history;
    private promptSnapshot;
    constructor(runtimeEngine: EngineRuntimePort, dependencies?: YagrSessionAgentDependencies);
    run(prompt: string, options?: YagrRunOptions): Promise<YagrRunResult>;
    clearConversation(): void;
    private createPromptSnapshot;
    private createRunner;
    private syncPromptSnapshotBeforeRun;
}
export declare class YagrAgent extends YagrSessionAgent {
    private readonly engine;
    constructor(engine: Engine, dependencies?: YagrSessionAgentDependencies);
    plan(spec: WorkflowSpec): Promise<GeneratedWorkflow>;
    validate(generatedWorkflow: GeneratedWorkflow): Promise<WorkflowValidationResult>;
    create(spec: WorkflowSpec): Promise<{
        workflow: GeneratedWorkflow;
        validation: WorkflowValidationResult;
        deployed?: DeployedWorkflow;
    }>;
    list(): Promise<DeployedWorkflow[]>;
    activate(id: string): Promise<void>;
    deactivate(id: string): Promise<void>;
    delete(id: string): Promise<void>;
}
export {};
//# sourceMappingURL=agent.d.ts.map