import { AgentActivity, ActivityType, ActivityStatus, ActivityLoggerConfig, ActivitySubscription, ActivityHook } from './types';
import { IPFSActivityStorage } from './ipfs-activity-storage';
import { ActivityIndex } from './activity-index';
import { ActivityStreamManager } from './activity-stream-manager';
/**
 * ActivityLogger - Core service for logging agent activities
 *
 * Provides activity tracking, batching, and real-time streaming
 */
export declare class ActivityLogger {
    private config;
    private activityBuffer;
    private batchTimer?;
    private subscriptions;
    private hooks;
    private processingBatch;
    private ipfsStorage?;
    private redundancyManager?;
    private activityIndex?;
    private streamManager?;
    constructor(config?: ActivityLoggerConfig);
    /**
     * Log a single activity
     */
    logActivity(activity: Partial<AgentActivity>): Promise<AgentActivity>;
    /**
     * Log multiple activities at once
     */
    logActivities(activities: Partial<AgentActivity>[]): Promise<AgentActivity[]>;
    /**
     * Subscribe to real-time activity updates
     */
    subscribe(filter: {
        agentDID?: string;
        parentDID?: string;
        types?: ActivityType[];
    }, callback: (activity: AgentActivity) => void): ActivitySubscription;
    /**
     * Register a hook for activities
     */
    registerHook(hook: ActivityHook): void;
    /**
     * Force process the current batch
     */
    flush(): Promise<void>;
    /**
     * Process a batch of activities
     */
    private processBatch;
    /**
     * Start the batch processing timer
     */
    private startBatchTimer;
    /**
     * Stop the batch processing timer
     */
    stopBatchTimer(): void;
    /**
     * Notify subscribers of a new activity
     */
    private notifySubscribers;
    /**
     * Check if an activity matches a subscription filter
     */
    private matchesSubscription;
    /**
     * Run before hooks for an activity
     */
    private runBeforeHooks;
    /**
     * Run after hooks for an activity
     */
    private runAfterHooks;
    /**
     * Emit batch processed event
     */
    private emitBatchProcessed;
    /**
     * Get current buffer size
     */
    getBufferSize(): number;
    /**
     * Get subscription count
     */
    getSubscriptionCount(): number;
    /**
     * Retrieve activities from IPFS
     */
    retrieveActivitiesFromIPFS(ipfsHashes: string[]): Promise<AgentActivity[]>;
    /**
     * Get IPFS storage instance
     */
    getIPFSStorage(): IPFSActivityStorage | undefined;
    /**
     * Get activity index instance
     */
    getActivityIndex(): ActivityIndex | undefined;
    /**
     * Get stream manager instance
     */
    getStreamManager(): ActivityStreamManager | undefined;
    /**
     * Enable or disable IPFS storage
     */
    setIPFSEnabled(enabled: boolean, ipfsUrl?: string): Promise<void>;
    /**
     * Check if IPFS is connected
     */
    checkIPFSConnection(): Promise<boolean>;
    /**
     * Cleanup resources
     */
    cleanup(): Promise<void>;
}
/**
 * Get or create the global activity logger instance
 */
export declare function getActivityLogger(config?: ActivityLoggerConfig): ActivityLogger;
/**
 * Helper function to create a standard activity object
 */
export declare function createActivity(type: ActivityType, params: {
    agentDID: string;
    parentDID: string;
    serviceDID: string;
    status: ActivityStatus;
    scopes?: string[];
    details?: any;
    sessionId?: string;
}): Partial<AgentActivity>;
//# sourceMappingURL=activity-logger.d.ts.map