/**
 * Discovery CLI Runner — closes the customer-facing loop.
 *
 * Wires together (all already shipped):
 *   W2.1 discoverAgents             — walk the project, build manifests
 *   signed-manifest helper          — Ed25519 + canonical JSON
 *   ManifestPushEmitter             — POST with retry on transient failures
 *
 * Customer invocation pattern (final binary lives in bin/discover.ts which
 * imports runDiscoveryCli; this module stays pure / testable):
 *
 *   npx @connexum/ai-governance discover \
 *       --root ./my-project \
 *       --org-id my-org \
 *       --key /etc/connexum/org-private-key.pem \
 *       --endpoint https://proxy.my-cc.io/api/v1/manifests
 *
 * @connexum/ai-governance  W2.1 + push transport binary
 */
import * as crypto from 'node:crypto';
import { type DiscoveryOptions } from './agent-discovery.js';
import { type PushResult } from './manifest-push-emitter.js';
import type { AgentManifest } from './owasp-agentic-scanner.js';
import type { HttpsTransport } from './approval-channel-adapters.js';
export interface DiscoveryCliInput {
    rootDir: string;
    orgId: string;
    privateKey: crypto.KeyObject;
    endpoint: string;
    /** Pass-through to discoverAgents. */
    discovery?: DiscoveryOptions;
    /** Injectable transport for tests. */
    transport?: HttpsTransport;
    /** Injectable sleep for tests. */
    sleep?: (ms: number) => Promise<void>;
    /** Override maxRetries on push. */
    maxRetries?: number;
    /** If true, skip the network push and return manifests only (dry-run). */
    dryRun?: boolean;
}
export interface AgentPushReport {
    manifest: AgentManifest;
    push: PushResult | null;
}
export interface DiscoveryCliResult {
    rootDir: string;
    agentCount: number;
    successCount: number;
    failureCount: number;
    reports: AgentPushReport[];
    /** Aggregate flag — true when every manifest pushed successfully. */
    ok: boolean;
}
/**
 * Pure runnable surface: discover -> for each -> push -> aggregate.
 */
export declare function runDiscoveryCli(input: DiscoveryCliInput): Promise<DiscoveryCliResult>;
/**
 * Format a CLI result as a human-readable text report (for stdout).
 * Browser-bundleable; no node-builtin imports.
 */
export declare function formatCliReport(result: DiscoveryCliResult): string;
//# sourceMappingURL=discovery-cli.d.ts.map