import { ConvoCompletionMessage, ConvoConversationCache, FlatConvoConversation } from "./convo-types.js";
/**
 * Base conversation cache that uses the sorted object hash of the messages of a conversation as
 * a caching key. `getSortedObjectHash` from @iyio/iyio-common is used to hash the messages.
 * ConvoHashCacheBase does not itself cache messages but serves as a base for caches that use
 * message hash based caching. ConvoHashCacheBase can act as a pass-through cache for testing or
 * as a placeholder.
 */
export declare class ConvoHashCacheBase implements ConvoConversationCache {
    readonly cacheType: string;
    constructor(type: string);
    getCachedResponse(flat: FlatConvoConversation): ConvoCompletionMessage[] | null | undefined | Promise<ConvoCompletionMessage[] | null | undefined>;
    getMessagesByKey(key: string): ConvoCompletionMessage[] | null | undefined | Promise<ConvoCompletionMessage[] | null | undefined>;
    cachedResponse(flat: FlatConvoConversation, messages: ConvoCompletionMessage[]): void | Promise<void>;
    cacheMessagesByKey(key: string, messages: ConvoCompletionMessage[]): void;
}
