/**
 * PostgresAgentRegistry — persistent adapter for AgentRegistryPort.
 *
 * Requires the `agent_registry` table (migration 039_agent_registry_port.sql).
 * Uses RLS for tenant isolation — call `resolve()` with `tenantId` to scope
 * queries via `set_config('app.tenant_id', ...)`.
 *
 * Depends on `DbPort` (compatible with `pg.Pool` / `pg.Client`).
 */
import type { DbPort } from "../../ports/db.js";
import type { AgentDescriptor, AgentRegistryPort } from "../../ports/agent-registry.js";
export declare class PostgresAgentRegistry implements AgentRegistryPort {
    private readonly db;
    constructor(db: DbPort);
    /**
     * Register (upsert) an agent descriptor using INSERT … ON CONFLICT DO UPDATE.
     * Safe to call on every process start (auto-register pattern).
     */
    register(descriptor: AgentDescriptor): Promise<void>;
    /**
     * List agents, optionally filtered by scalar descriptor fields.
     */
    list(filter?: Partial<AgentDescriptor>): Promise<AgentDescriptor[]>;
    /**
     * Resolve agents that declare the given capability.
     *
     * When `opts.tenantId` is provided, `set_config` injects the tenant id so
     * that Postgres RLS policy `tenant_isolation` applies. The query also
     * returns global agents (tenant_id IS NULL) alongside tenant-scoped ones.
     */
    resolve(capability: string, opts?: {
        tenantId?: string;
    }): Promise<AgentDescriptor[]>;
    /**
     * Remove an agent by id. No-op if the id does not exist.
     */
    unregister(id: string): Promise<void>;
}
//# sourceMappingURL=postgres.d.ts.map