import type { ConfigManager } from '../../config/manager.js';
import type { ChannelPluginRegistry, ChannelPolicyManager, RouteBindingManager, SurfaceRegistry } from '../../channels/index.js';
import type { KnowledgeGraphqlService, KnowledgeService } from '../../knowledge/index.js';
import type { ArtifactStore } from '@pellux/goodvibes-sdk/platform/artifacts/index';
import type { MediaProviderRegistry } from '../../media/index.js';
import type { MultimodalService } from '../../multimodal/index.js';
import type { VoiceService } from '@pellux/goodvibes-sdk/platform/voice/index';
import type { WebSearchService } from '../../web-search/index.js';
import type { IntegrationHelperService } from '../../runtime/integration/helpers.js';
import type { ApprovalBroker } from '../../control-plane/index.js';
import type { PlatformServiceManager } from '../service-manager.js';
import type { JsonRecord } from '../helpers.js';
import type { WatcherRegistry } from '../../watchers/index.js';
import type { DaemonChannelRouteContext } from '@pellux/goodvibes-sdk/platform/daemon/http/channel-route-types';
import type { DaemonIntegrationRouteContext } from '@pellux/goodvibes-sdk/platform/daemon/http/integration-route-types';
import type { DaemonKnowledgeRouteContext } from '@pellux/goodvibes-sdk/platform/daemon/http/knowledge-route-types';
import type { DaemonMediaRouteContext } from '@pellux/goodvibes-sdk/platform/daemon/http/media-route-types';
import type { DaemonSystemRouteContext } from '@pellux/goodvibes-sdk/platform/daemon/http/system-route-types';
export declare function buildChannelRouteContext(input: {
    readonly channelPlugins: ChannelPluginRegistry;
    readonly channelPolicy: ChannelPolicyManager;
    readonly parseJsonBody: (request: Request) => Promise<JsonRecord | Response>;
    readonly parseOptionalJsonBody: (request: Request) => Promise<JsonRecord | null | Response>;
    readonly requireAdmin: (request: Request) => Response | null;
    readonly surfaceRegistry: SurfaceRegistry;
}): DaemonChannelRouteContext;
export declare function buildSystemRouteContext(input: {
    readonly approvalBroker: ApprovalBroker;
    readonly configManager: ConfigManager;
    readonly integrationHelpers: IntegrationHelperService | null;
    readonly inspectInboundTls: (surface: 'controlPlane' | 'httpListener') => unknown;
    readonly inspectOutboundTls: () => unknown;
    readonly isValidConfigKey: (key: string) => boolean;
    readonly parseJsonBody: (request: Request) => Promise<JsonRecord | Response>;
    readonly parseOptionalJsonBody: (request: Request) => Promise<JsonRecord | null | Response>;
    readonly platformServiceManager: PlatformServiceManager;
    readonly recordApiResponse: (request: Request, path: string, response: Response, clientKind?: DaemonSystemRouteContext['recordApiResponse'] extends (req: Request, path: string, response: Response, clientKind?: infer T) => Response ? T : never) => Response;
    readonly requireAdmin: (request: Request) => Response | null;
    readonly requireAuthenticatedSession: (request: Request) => {
        username: string;
        roles: readonly string[];
    } | null;
    readonly routeBindings: RouteBindingManager;
    readonly watcherRegistry: WatcherRegistry;
}): DaemonSystemRouteContext;
export declare function buildKnowledgeRouteContext(input: {
    readonly configManager: ConfigManager;
    readonly inspectGraphqlAccess: DaemonKnowledgeRouteContext['inspectGraphqlAccess'];
    readonly normalizeAtSchedule: DaemonKnowledgeRouteContext['normalizeAtSchedule'];
    readonly normalizeEverySchedule: DaemonKnowledgeRouteContext['normalizeEverySchedule'];
    readonly normalizeCronSchedule: DaemonKnowledgeRouteContext['normalizeCronSchedule'];
    readonly parseJsonBody: (request: Request) => Promise<JsonRecord | Response>;
    readonly parseOptionalJsonBody: (request: Request) => Promise<JsonRecord | null | Response>;
    readonly parseJsonText: (raw: string) => JsonRecord | Response;
    readonly requireAdmin: (request: Request) => Response | null;
    readonly resolveAuthenticatedPrincipal: (request: Request) => ReturnType<DaemonKnowledgeRouteContext['resolveAuthenticatedPrincipal']>;
    readonly knowledgeService: KnowledgeService;
    readonly knowledgeGraphqlService: KnowledgeGraphqlService;
}): DaemonKnowledgeRouteContext;
export declare function buildMediaRouteContext(input: {
    readonly artifactStore: ArtifactStore;
    readonly configManager: ConfigManager;
    readonly mediaProviders: MediaProviderRegistry;
    readonly multimodalService: MultimodalService;
    readonly parseJsonBody: (request: Request) => Promise<JsonRecord | Response>;
    readonly requireAdmin: (request: Request) => Response | null;
    readonly voiceService: VoiceService;
    readonly webSearchService: WebSearchService;
}): DaemonMediaRouteContext;
export declare function buildIntegrationRouteContext(input: DaemonIntegrationRouteContext): DaemonIntegrationRouteContext;
//# sourceMappingURL=router-route-contexts.d.ts.map