import type { Config } from '../../config/schema.js';
import type { AgentIPCMessage } from './types.js';
export declare class AgentInbox {
    private readonly pendingDir;
    private readonly processedDir;
    private watcher?;
    constructor(agentDir: string);
    /**
     * Static factory using agent ID (paths from config).
     */
    static forAgent(config: Config, agentId: string): AgentInbox;
    /**
     * Enqueue a message
     */
    enqueue(message: AgentIPCMessage): Promise<void>;
    /**
     * Dequeue the oldest pending message
     */
    dequeue(): Promise<AgentIPCMessage | null>;
    /**
     * Peek at pending messages without removing them
     */
    peek(limit?: number): Promise<AgentIPCMessage[]>;
    /**
     * Count pending messages
     */
    count(): Promise<number>;
    /**
     * Watch for new messages
     */
    watch(handler: (msg: AgentIPCMessage) => Promise<void>): Promise<() => void>;
    /**
     * Stop watching
     */
    stopWatching(): void;
    /**
     * Clear all processed messages
     */
    clearProcessed(olderThanMs?: number): Promise<number>;
    private processPending;
}
