/**
 * Loopback-only, read-only admin HTTP API for the drawlatch-ui dashboard.
 *
 * SECURITY non-negotiables (mirrored in /admin.test.ts):
 *   - Never serializes Session.channel (AES keys) or ResolvedRoute.secrets.
 *   - Never returns process.env values; only key names. Secret presence is
 *     reported via `isSecretSetForCaller()` (booleans only).
 *   - Caller `env` mappings (e.g. "GITHUB_TOKEN": "${ACME_GITHUB_TOKEN}") are
 *     reduced to key-name lists — the value strings are NOT returned.
 *   - No mutations: every endpoint is GET.
 *   - No CORS. Loopback IS the trust boundary; the UI's local backend proxies.
 */
import express from 'express';
import { type RemoteServerConfig } from '../shared/config.js';
import type { IngestorManager } from './ingestors/index.js';
import type { SessionSnapshot } from './server.js';
export interface AdminRouterDeps {
    /** Sanitized session snapshot — see Session in server.ts. */
    getSessionsSnapshot: () => SessionSnapshot[];
    /** Late-bound so tests can swap the manager without rebuilding the router. */
    ingestorManager: () => IngestorManager;
    /** Late-bound so changes to disk config are picked up between requests. */
    loadConfig: () => RemoteServerConfig;
    version: string;
    port: number;
    startedAt: number;
}
export declare function createAdminRouter(deps: AdminRouterDeps): express.Router;
//# sourceMappingURL=admin.d.ts.map