/**
 * A2A Task Cleanup Service for JAF
 * Pure functional cleanup and expiration policies for A2A tasks
 */
import { A2ATaskProvider, A2AResult } from './types.js';
/**
 * Configuration for task cleanup policies
 */
export interface A2ATaskCleanupConfig {
    readonly enabled: boolean;
    readonly interval: number;
    readonly maxAge: number;
    readonly maxCompletedTasks: number;
    readonly maxFailedTasks: number;
    readonly retainStates: readonly string[];
    readonly batchSize: number;
    readonly dryRun: boolean;
}
/**
 * Default cleanup configuration
 */
export declare const defaultCleanupConfig: A2ATaskCleanupConfig;
/**
 * Result type for cleanup operations
 */
export interface CleanupResult {
    readonly expiredCleaned: number;
    readonly excessCompletedCleaned: number;
    readonly excessFailedCleaned: number;
    readonly totalCleaned: number;
    readonly errors: readonly string[];
}
/**
 * Pure function to perform task cleanup
 */
export declare const performTaskCleanup: (taskProvider: A2ATaskProvider, config?: A2ATaskCleanupConfig) => Promise<A2AResult<CleanupResult>>;
/**
 * Pure function to create a cleanup scheduler
 */
export declare const createTaskCleanupScheduler: (taskProvider: A2ATaskProvider, config?: A2ATaskCleanupConfig) => {
    start: () => void;
    stop: () => void;
    runOnce: () => Promise<A2AResult<CleanupResult>>;
    isRunning: () => boolean;
    config: A2ATaskCleanupConfig;
};
/**
 * Pure function to validate cleanup configuration
 */
export declare const validateCleanupConfig: (config: Partial<A2ATaskCleanupConfig>) => {
    valid: boolean;
    errors: string[];
};
/**
 * Helper function to create cleanup config from environment variables
 */
export declare const createCleanupConfigFromEnv: () => A2ATaskCleanupConfig;
//# sourceMappingURL=cleanup.d.ts.map