import type { MemoryMessage, TutanusContextState, TutanusRunRecord } from '../types/index.js';
import type { RunEndUpdate, RunStartInput } from '../types/shared/memory.js';
export type { MemoryMessage, RunEndUpdate, RunStartInput, TutanusContextState, TutanusRunRecord };
export declare class ConversationMemory {
    private maxHistory;
    private persistCaminho?;
    private history;
    constructor(maxHistory?: number, persistCaminho?: string | undefined);
    init(): Promise<void>;
    addMessage(message: MemoryMessage): Promise<void>;
    getContext(lastN?: number): MemoryMessage[];
    getSummary(): {
        totalMessages: number;
        userMessages: number;
        assistantMessages: number;
        firstMessage?: string;
        lastMessage?: string;
    };
    clear(): Promise<void>;
    private persist;
}
export declare class TutanusContextMemory {
    private maxRuns;
    private persistCaminho?;
    private state;
    constructor(maxRuns?: number, persistCaminho?: string | undefined);
    init(): Promise<void>;
    getState(): TutanusContextState;
    getLastRun(): TutanusRunRecord | undefined;
    getPreference<T = unknown>(key: string): T | undefined;
    setPreference(key: string, value: unknown): Promise<void>;
    recordRunStart(input: RunStartInput): Promise<string>;
    recordRunEnd(id: string, update: RunEndUpdate): Promise<void>;
    clear(): Promise<void>;
    private persist;
}
export declare function getDefaultMemory(): Promise<ConversationMemory>;
export declare function getDefaultContextMemory(): Promise<TutanusContextMemory>;
//# sourceMappingURL=memory.d.ts.map