import type { Actor, ProvenanceRecord, CreateProvenanceRecord } from './types.js';
import type { ProvenanceStorage } from './storage.js';
/**
 * ProvenanceTracker class for tracking entity changes
 */
export declare class ProvenanceTracker {
    private storage;
    constructor(storage: ProvenanceStorage);
    /**
     * Track a provenance event for an entity
     *
     * @param entity - Entity type being tracked
     * @param action - Action performed
     * @param data - Data snapshot at time of action
     * @param actor - Actor who performed the action
     * @param tenantId - Tenant identifier
     * @param metadata - Optional additional metadata
     * @returns Created provenance record
     */
    track(entity: string, action: string, data: Record<string, unknown>, actor: Actor, tenantId: string, metadata?: Record<string, unknown>): Promise<ProvenanceRecord>;
    /**
     * Get provenance history for an entity
     *
     * @param entityId - Entity identifier
     * @param tenantId - Tenant identifier
     * @returns Array of provenance records ordered by chain position
     */
    getHistory(entityId: string, tenantId: string): Promise<ProvenanceRecord[]>;
    /**
     * Get a single provenance record by ID
     *
     * @param recordId - Record identifier
     * @param tenantId - Tenant identifier
     * @returns Provenance record or null if not found
     */
    getRecord(recordId: string, tenantId: string): Promise<ProvenanceRecord | null>;
    /**
     * Track a batch of provenance events
     *
     * @param records - Array of records to create
     * @returns Array of created provenance records
     */
    trackBatch(records: CreateProvenanceRecord[]): Promise<ProvenanceRecord[]>;
}
/**
 * Create a new ProvenanceTracker instance
 */
export declare function createProvenanceTracker(storage: ProvenanceStorage): ProvenanceTracker;
//# sourceMappingURL=tracker.d.ts.map