import { Message } from "../clients/types";
export type ProcessorLifecycle = "initial_call" | "pre_call" | "post_call" | "pre_tools" | "post_tools";
export type MessageProcessorFunction = (originalMessages: Message[], modifiedMessages: Message[]) => Promise<void> | void;
export interface ProcessorRegistration {
    processor: MessageProcessorFunction;
    priority: number;
}
export declare class MessageProcessor {
    private processors;
    constructor();
    setProcessors(lifecycle: ProcessorLifecycle, processors: MessageProcessorFunction[]): void;
    registerProcessor(lifecycle: ProcessorLifecycle, processor: MessageProcessorFunction, priority?: number): void;
    removeProcessor(lifecycle: ProcessorLifecycle, processor: MessageProcessorFunction): void;
    processMessages(messages: Message[], lifecycle: ProcessorLifecycle): Promise<Message[]>;
    getProcessorsForLifecycle(lifecycle: ProcessorLifecycle): MessageProcessorFunction[];
    clearProcessors(lifecycle?: ProcessorLifecycle): void;
}
