import type { APIClient } from '@mb-it-org/shared';
export type HttpMethod = 'GET' | 'POST';
export type ResponseMode = 'json' | 'ndjson';
export interface ManifestAction {
    name: string;
    description: string;
    method: HttpMethod;
    path: string;
    pathPrefix?: string;
    responseMode?: ResponseMode;
}
export interface ManifestModule {
    domain: string;
    pathPrefix?: string;
    actions: ManifestAction[];
}
export interface AuditManifest {
    schemaVersion: string;
    manifestVersion: string;
    modules: ManifestModule[];
}
export interface ServeRoute {
    method: HttpMethod;
    routeUrl: string;
    domain: string;
    action: string;
    description: string;
    apiPath: string;
    responseMode: ResponseMode;
    call: (client: APIClient, input: {
        params: Record<string, string>;
        query: Record<string, unknown>;
        body: unknown;
    }) => Promise<unknown>;
}
export declare function buildRoutes(manifest: AuditManifest): ServeRoute[];
//# sourceMappingURL=router.d.ts.map