import { Brain, BrainRole, BrainTokenUsage } from '@myycontext/core';
export declare class BrainClient {
    private static instance;
    private brainPath;
    private constructor();
    static getInstance(workingDirectory?: string): BrainClient;
    getBrain(): Promise<Brain>;
    private incrementVersion;
    saveBrain(brain: Brain): Promise<void>;
    addUpdate(agentName: string, role: BrainRole, type: "thought" | "action" | "error" | "completion", message: string, metadata?: any): Promise<void>;
    updateArtifact(type: 'prd' | 'code', content: string, filePath: string): Promise<void>;
    setNarrative(narrative: string): Promise<void>;
    setStatus(status: Brain['status']): Promise<void>;
    registerComponent(name: string, description: string, path: string, dependencies?: string[]): Promise<void>;
    getRegistry(): Promise<Brain['registry']>;
    reset(): Promise<void>;
    /**
     * Record token usage for a single LLM call.
     * Updates both the per-call metadata in the latest BrainUpdate (if any)
     * and the cumulative usage summary on brain.usage.
     */
    recordTokenUsage(agentName: string, provider: string, model: string, tokens: {
        inputTokens: number;
        outputTokens: number;
        totalTokens: number;
    }, costUSD: number): Promise<void>;
    /** Return the cumulative token usage summary for the current context */
    getUsageSummary(): Promise<BrainTokenUsage | undefined>;
}
//# sourceMappingURL=BrainClient.d.ts.map