/**
 * Simulate Command - CRUD Command for Simulation Management
 *
 * ARCHITECTURE:
 * - This module supports both orchestration commands AND local CRUD operations
 * - Local CRUD uses file-based persistence in .agentics/simulations/
 * - Has its own error handling and exit codes
 *
 * SUBCOMMANDS (Local CRUD):
 * - list      List all simulations
 * - inspect   Inspect a specific simulation by ID
 * - create    Create a new simulation record
 * - delete    Delete a simulation
 * - run       Execute simulation via agentics-simulation-runner
 *
 * ORCHESTRATION (External):
 * - Default command executes via agentics-simulation-runner
 */
import type { CommandOptions, SimulationReference, PlanReference, FlexibleInput } from '../types/index.js';
export declare const SIMULATE_EXIT_CODES: {
    readonly SUCCESS: 0;
    readonly INPUT_ERROR: 100;
    readonly NOT_FOUND: 100;
    readonly IO_ERROR: 74;
    readonly UNEXPECTED_ERROR: 1;
};
export interface SimulationRecord {
    id: string;
    name: string;
    description: string;
    status: SimulationStatus;
    plan_id?: string;
    iterations: number;
    created_at: string;
    updated_at: string;
    completed_at?: string;
    version: number;
    result?: SimulationResultData;
    metadata?: Record<string, unknown>;
}
export type SimulationStatus = 'pending' | 'running' | 'completed' | 'failed';
export interface SimulationResultData {
    success: boolean;
    duration_ms: number;
    summary?: string;
    metrics?: Record<string, unknown>;
}
export interface SimulateCreateInput {
    name: string;
    description?: string;
    plan_id?: string;
    iterations?: number;
    metadata?: Record<string, unknown>;
}
export interface SimulateCreateResult {
    simulation: SimulationRecord;
    timing: number;
}
export interface SimulateInspectInput {
    id: string;
}
export interface SimulateInspectResult {
    simulation: SimulationRecord | null;
    found: boolean;
    timing: number;
}
export interface SimulateDeleteInput {
    id: string;
}
export interface SimulateDeleteResult {
    deleted: boolean;
    id: string;
    timing: number;
}
export interface SimulateRunInput {
    id: string;
}
export interface SimulateRunResult {
    simulation: SimulationRecord;
    previous_status: SimulationStatus;
    advisory: boolean;
    timing: number;
}
/**
 * @deprecated Use ruvector-minted execution_id from requestRuvectorAcceptance() instead.
 * ADR-004: execution_id MUST be minted exclusively by ruvector-service.
 * Retained for backward compatibility only.
 */
export declare function generateSimulationId(): string;
export declare function formatSimulationForDisplay(simulation: SimulationRecord): string;
export interface SimulateCommandInput {
    planRef: FlexibleInput<PlanReference>;
    config?: Record<string, unknown>;
    iterations?: number;
}
export interface SimulateCommandResult {
    reference: SimulationReference;
    timing: number;
    /** Full simulation engine response for downstream artifact generation */
    simulationData?: unknown;
}
export interface SimulateListInput {
    status?: 'running' | 'completed' | 'failed' | 'pending';
    limit?: number;
}
export interface SimulateListResult {
    simulations: SimulationSummary[];
    count: number;
    timing: number;
}
export interface SimulationSummary {
    id: string;
    plan_id: string;
    status: string;
    created_at: string;
    completed_at?: string;
    iterations?: number;
}
export declare function executeSimulateCommand(input: SimulateCommandInput, options: CommandOptions): Promise<SimulateCommandResult>;
/**
 * List simulations from local storage
 */
export declare function executeSimulateListCommand(input: SimulateListInput, _options: CommandOptions): Promise<SimulateListResult>;
/**
 * Format simulations list for human-readable display
 */
export declare function formatSimulationsListForDisplay(simulations: SimulationSummary[]): string;
/**
 * Create a new simulation record
 */
export declare function executeSimulateCreateCommand(input: SimulateCreateInput, options: CommandOptions): Promise<SimulateCreateResult>;
/**
 * Inspect a specific simulation by ID
 */
export declare function executeSimulateInspectCommand(input: SimulateInspectInput, options: CommandOptions): Promise<SimulateInspectResult>;
/**
 * Delete a simulation
 */
export declare function executeSimulateDeleteCommand(input: SimulateDeleteInput, options: CommandOptions): Promise<SimulateDeleteResult>;
/**
 * Run a simulation - executes the simulation via downstream services.
 * For authorized users (internal email or paid API key), this performs real execution.
 */
export declare function executeSimulateRunCommand(input: SimulateRunInput, options: CommandOptions): Promise<SimulateRunResult>;
//# sourceMappingURL=simulate.d.ts.map