import type { Activity, ActivityProgress, ActivityStatus, ActivityTrackingConfig, ActivityType } from '../../types/activity/index.js';
import type { ActivityId, RunId } from '../../types/ids/index.js';
export interface ActivityEvent {
    type: 'activity.created' | 'activity.started' | 'activity.progress' | 'activity.completed' | 'activity.failed' | 'activity.cancelled';
    activity: Activity;
}
export type ActivityEventListener = (event: ActivityEvent) => void;
export declare class ActivityStore {
    private activities;
    private runId;
    private config;
    private listeners;
    constructor(runId: RunId, config: ActivityTrackingConfig);
    get enabled(): boolean;
    on(listener: ActivityEventListener): () => void;
    private emit;
    create(params: {
        type: ActivityType;
        description: string;
        input?: unknown;
        parentActivityId?: ActivityId;
        toolName?: string;
        toolCallId?: string;
        blockedBy?: ActivityId[];
    }): Activity | null;
    start(activityId: ActivityId): Activity | null;
    updateProgress(activityId: ActivityId, progress: Omit<ActivityProgress, 'updatedAt'>): Activity | null;
    complete(activityId: ActivityId, output?: unknown): Activity | null;
    fail(activityId: ActivityId, error: string): Activity | null;
    cancel(activityId: ActivityId): Activity | null;
    get(activityId: ActivityId): Activity | undefined;
    getByToolCallId(toolCallId: string): Activity | undefined;
    list(filter?: {
        status?: ActivityStatus;
        type?: ActivityType;
    }): Activity[];
    getBlockedActivities(): Activity[];
    getReadyActivities(): Activity[];
    stats(): {
        total: number;
        pending: number;
        running: number;
        completed: number;
        failed: number;
        cancelled: number;
    };
    clear(): void;
}
//# sourceMappingURL=memory.d.ts.map