import { IExecuteFunctions, IDataObject, INodeExecutionData } from 'n8n-workflow';
export interface IRoundRobinExternalMessage {
    role: string;
    content: string;
    spotIndex: number;
    timestamp: number;
}
export interface IRoundRobinExternalRole {
    name: string;
    description: string;
    color?: string;
    icon?: string;
    tone?: string;
    expertise?: string[];
    systemPrompt?: string;
    isEnabled?: boolean;
}
export interface IRoundRobinMetrics {
    roundCount?: number;
    maxRounds?: number;
    [key: string]: any;
}
export declare class ExternalStorageManager {
    private executeFunctions;
    private storageType;
    private storageId;
    constructor(executeFunctions: IExecuteFunctions, storageType: string, storageId: string);
    storeToBinary(messages: IRoundRobinExternalMessage[], roles: IRoundRobinExternalRole[], spotCount: number, metrics?: IRoundRobinMetrics): Promise<INodeExecutionData>;
    loadFromBinary(binaryData: IDataObject): Promise<{
        messages: IRoundRobinExternalMessage[];
        roles: IRoundRobinExternalRole[];
        spotCount: number;
        lastUpdated: number;
        roundCount?: number;
        maxRounds?: number;
    }>;
}
export declare function createStorageManager(executeFunctions: IExecuteFunctions, storageType?: string, storageId?: string): ExternalStorageManager;
//# sourceMappingURL=ExternalStorage.d.ts.map