/**
 * Trust Oracle REST API
 * API endpoints for vendor trust scoring and risk assessment
 */
import { ApiError } from './types';
import { TrustOracleService } from './oracle';
import { VendorRegistry } from './vendor-registry';
import { AlertManager } from './alerts';
import { ReportingService } from './reporting';
import { ContinuousMonitoringService } from './continuous-monitoring';
export interface TrustOracleApiConfig {
    trustOracle: TrustOracleService;
    vendorRegistry: VendorRegistry;
    alertManager: AlertManager;
    reportingService: ReportingService;
    monitoringService: ContinuousMonitoringService;
    authMiddleware: AuthMiddleware;
    rateLimiter: RateLimiter;
}
export interface AuthMiddleware {
    authenticate(request: ApiRequest): Promise<AuthContext>;
    authorize(context: AuthContext, permission: string): boolean;
}
export interface RateLimiter {
    checkLimit(clientId: string, endpoint: string): Promise<boolean>;
    getRemainingRequests(clientId: string): Promise<number>;
}
export interface AuthContext {
    userId: string;
    clientId: string;
    permissions: string[];
    organizationId: string;
}
export interface ApiRequest {
    method: string;
    path: string;
    headers: Record<string, string>;
    query: Record<string, string>;
    body: unknown;
    params: Record<string, string>;
}
export interface ApiResponse<T = unknown> {
    status: number;
    body: T | ApiError;
    headers?: Record<string, string>;
}
export declare class TrustOracleApiRouter {
    private readonly config;
    private readonly routes;
    constructor(config: TrustOracleApiConfig);
    private registerRoutes;
    handleRequest(request: ApiRequest): Promise<ApiResponse>;
    private normalizeRoute;
    private getVendorTrustScore;
    private getTrustScoreHistory;
    private assessVendorRisk;
    private startVendorMonitoring;
    private stopVendorMonitoring;
    private getMonitoringStatus;
    private compareTrustScores;
    private listVendors;
    private getVendor;
    private createVendor;
    private updateVendor;
    private deleteVendor;
    private getRiskAssessment;
    private createRiskAssessment;
    private getConcentrationRisk;
    private getHealthEvents;
    private getHealthEventStats;
    private getVendorAlerts;
    private listAlerts;
    private getAlert;
    private acknowledgeAlert;
    private resolveAlert;
    private getAlertStats;
    private getVendorReports;
    private generateAssessmentReport;
    private generatePeriodicReport;
    private generateBoardSummary;
    private getReport;
    private exportReport;
    private getVendorCertifications;
    private addCertification;
    private updateCertification;
    private getVendorContracts;
    private createContract;
    private updateContract;
    private checkPermission;
    private notFound;
    private rateLimitExceeded;
    private handleError;
    private generateRequestId;
}
export declare function createTrustOracleApi(config: TrustOracleApiConfig): TrustOracleApiRouter;
export declare function generateOpenApiSpec(): OpenApiSpec;
interface OpenApiSpec {
    openapi: string;
    info: {
        title: string;
        description: string;
        version: string;
    };
    servers: Array<{
        url: string;
        description: string;
    }>;
    paths: Record<string, Record<string, unknown>>;
    components: {
        schemas: Record<string, unknown>;
        securitySchemes: Record<string, unknown>;
    };
    security: Array<Record<string, string[]>>;
}
export {};
//# sourceMappingURL=api.d.ts.map