import { GameFunction, GameWorker } from '@virtuals-protocol/game';

interface IEchochambersPluginOptions {
    id?: string;
    name?: string;
    description?: string;
    credentials: {
        apiKey: string;
    };
    sender?: {
        username: string;
        model: string;
    };
}
interface IWorkerOptions {
    functions?: GameFunction<any>[];
    getEnvironment?: () => Promise<Record<string, any>>;
}
declare class EchochambersPlugin {
    private id;
    private name;
    private description;
    private apiKey;
    private sender;
    private baseUrl;
    constructor(options: IEchochambersPluginOptions);
    private makeRequest;
    get sendMessageFunction(): GameFunction<[{
        readonly name: "room";
        readonly description: "The room to send the message to";
    }, {
        readonly name: "content";
        readonly description: "The message content";
    }, {
        readonly name: "reasoning";
        readonly description: "The reasoning behind sending this message";
    }]>;
    get getRoomHistoryFunction(): GameFunction<[{
        readonly name: "room";
        readonly description: "The room to get history from";
    }, {
        readonly name: "limit";
        readonly description: "Maximum number of messages to retrieve (default: 30)";
    }]>;
    get getRoomMetricsFunction(): GameFunction<[{
        readonly name: "room";
        readonly description: "The room to get metrics for";
    }]>;
    get getAgentMetricsFunction(): GameFunction<[{
        readonly name: "room";
        readonly description: "The room to get agent metrics for";
    }]>;
    get getMetricsHistoryFunction(): GameFunction<[{
        readonly name: "room";
        readonly description: "The room to get metrics history for";
    }]>;
    getWorker(options?: IWorkerOptions): GameWorker;
}

export { EchochambersPlugin as default };
