/**
 * REPLAY - Intent Replay System
 *
 * Re-executes or simulates past intents for:
 * - Debugging issues
 * - Policy testing ("what-if" scenarios)
 * - Compliance audits
 * - Training and demonstrations
 *
 * @packageDocumentation
 */
import type { ID, Intent, TrustLevel, TrustScore } from '../../common/types.js';
import type { Policy } from '../../policy/types.js';
import { SnapshotManager, type SystemSnapshot, type SnapshotCaptureOptions } from './snapshot.js';
import { ReplayComparator } from './comparator.js';
import { SimulationEngine } from './simulator.js';
import type { ReplayStep, ReplayResult } from './types.js';
export type { ReplayStep, ReplayStepResult, ReplayResult } from './types.js';
/**
 * Options for replay execution
 */
export interface ReplayOptions {
    /** If true, don't persist any changes (simulation only) */
    dryRun?: boolean;
    /** Stop execution at a specific step */
    stopAt?: ReplayStep;
    /** Override policy for replay */
    modifyPolicy?: {
        /** Policies to use instead of snapshot */
        policies?: Policy[];
        /** Additional policies to include */
        additionalPolicies?: Policy[];
        /** Policy IDs to exclude */
        excludePolicies?: ID[];
    };
    /** Execution speed factor (1.0 = real-time, 2.0 = 2x speed, 0 = instant) */
    speedFactor?: number;
    /** Override trust score for replay */
    trustScoreOverride?: TrustScore;
    /** Override trust level for replay */
    trustLevelOverride?: TrustLevel;
    /** Generate comparison report with original */
    generateComparison?: boolean;
    /** Include detailed step execution data */
    includeStepDetails?: boolean;
}
/**
 * ReplayEngine - Main class for replaying intent executions
 */
export declare class ReplayEngine {
    private snapshotManager;
    private comparator;
    private simulator;
    constructor(snapshotManager?: SnapshotManager, comparator?: ReplayComparator, simulator?: SimulationEngine);
    /**
     * Replay a past intent execution
     */
    replay(intentId: ID, options?: ReplayOptions): Promise<ReplayResult>;
    /**
     * Get the snapshot manager instance
     */
    getSnapshotManager(): SnapshotManager;
    /**
     * Get the comparator instance
     */
    getComparator(): ReplayComparator;
    /**
     * Get the simulator instance
     */
    getSimulator(): SimulationEngine;
    /**
     * Capture a snapshot for an intent
     */
    captureSnapshot(intent: Intent, trustData: {
        score: TrustScore;
        level: TrustLevel;
        components?: {
            behavioral: number;
            compliance: number;
            identity: number;
            context: number;
        };
    }, policies: Policy[], options?: SnapshotCaptureOptions): Promise<SystemSnapshot>;
    /**
     * Helper to delay execution
     */
    private delay;
    /**
     * Build error result
     */
    private buildErrorResult;
    /**
     * Build stopped result
     */
    private buildStoppedResult;
}
/**
 * Create a new ReplayEngine instance
 */
export declare function createReplayEngine(): ReplayEngine;
export { SnapshotManager, createSnapshotManager, type SystemSnapshot, type TrustSnapshot, type PolicySnapshot, type EnvironmentSnapshot, type SnapshotCaptureOptions, type SnapshotRestoreOptions, type RestoredContext, } from './snapshot.js';
export { ReplayComparator, createReplayComparator, type ComparisonReport, type OriginalExecution, type ComparisonOptions, type Difference, type DifferenceType, type DifferenceSeverity, type PolicyComparison, type TimingComparison, } from './comparator.js';
export { SimulationEngine, createSimulationEngine, type CreateIntent, type SimulationContext, type SimulationResult, type BulkSimulationOptions, type BulkSimulationResult, } from './simulator.js';
//# sourceMappingURL=index.d.ts.map