/**
 * SageMaker Model Detection and Streaming Capability Discovery
 *
 * This module provides intelligent detection of SageMaker endpoint capabilities
 * including model type identification and streaming protocol support.
 */
import type { SageMakerConfig, SageMakerModelConfig } from "../../types/providers.js";
/**
 * Streaming capability information for an endpoint
 */
export type StreamingCapability = {
    /** Whether streaming is supported */
    supported: boolean;
    /** Detected streaming protocol */
    protocol: "sse" | "jsonl" | "chunked" | "none";
    /** Detected model framework */
    modelType: "huggingface" | "llama" | "pytorch" | "tensorflow" | "custom";
    /** Test endpoint for streaming validation */
    testEndpoint?: string;
    /** Required parameters for streaming */
    parameters?: Record<string, unknown>;
    /** Confidence level of detection (0-1) */
    confidence: number;
    /** Additional metadata about the model */
    metadata?: {
        modelName?: string;
        framework?: string;
        version?: string;
        tags?: string[];
    };
};
/**
 * Model type detection result
 */
export type ModelDetectionResult = {
    /** Primary model type */
    type: StreamingCapability["modelType"];
    /** Detection confidence (0-1) */
    confidence: number;
    /** Evidence used for detection */
    evidence: string[];
    /** Suggested configuration */
    suggestedConfig?: Partial<SageMakerModelConfig>;
};
/**
 * Endpoint health and metadata information
 */
export type EndpointHealth = {
    /** Health status */
    status: "healthy" | "unhealthy" | "unknown";
    /** Response time in milliseconds */
    responseTime: number;
    /** Endpoint metadata if available */
    metadata?: Record<string, unknown>;
    /** Model information if discoverable */
    modelInfo?: {
        name?: string;
        version?: string;
        framework?: string;
        architecture?: string;
    };
};
/**
 * SageMaker Model Detection and Capability Discovery Service
 */
export declare class SageMakerDetector {
    private client;
    private config;
    constructor(config: SageMakerConfig);
    /**
     * Detect streaming capabilities for a given endpoint
     */
    detectStreamingCapability(endpointName: string): Promise<StreamingCapability>;
    /**
     * Detect the model type/framework for an endpoint
     */
    detectModelType(endpointName: string): Promise<ModelDetectionResult>;
    /**
     * Check endpoint health and gather metadata
     */
    checkEndpointHealth(endpointName: string): Promise<EndpointHealth>;
    /**
     * Test if endpoint supports streaming for given model type
     */
    private testStreamingSupport;
    /**
     * Detect streaming protocol used by endpoint
     */
    private detectStreamingProtocol;
    /**
     * Test for HuggingFace Transformers signature
     */
    private testHuggingFaceSignature;
    /**
     * Test for LLaMA model signature
     */
    private testLlamaSignature;
    /**
     * Test for PyTorch model signature
     */
    private testPyTorchSignature;
    /**
     * Test for TensorFlow Serving signature
     */
    private testTensorFlowSignature;
    /**
     * Get streaming test cases for a model type
     */
    private getStreamingTestCases;
    /**
     * Check if response indicates streaming support
     */
    private indicatesStreamingSupport;
    /**
     * Extract model information from response
     */
    private extractModelInfo;
    /**
     * Get suggested configuration for detected model type
     */
    private getSuggestedConfig;
    /**
     * Run detection tests in parallel with intelligent rate limiting and circuit breaker
     * Now uses configuration object for better parameter management
     */
    private runDetectionTestsInParallel;
    /**
     * Create a semaphore for detection test concurrency control
     */
    private createDetectionSemaphore;
    /**
     * Wrap a detection test with error handling, rate limiting, and retry logic
     * Now uses configuration object instead of multiple parameters
     */
    private wrapDetectionTest;
    /**
     * Execute a test with staggered start to spread load
     */
    private executeWithStaggeredStart;
    /**
     * Handle detection test errors with rate limiting and retry logic
     */
    private handleDetectionTestError;
    /**
     * Check if an error indicates rate limiting
     */
    private isRateLimitError;
    /**
     * Retry a test with exponential backoff
     */
    private retryWithBackoff;
    /**
     * Execute wrapped tests with concurrency control
     */
    private executeTestsWithConcurrencyControl;
    /**
     * Log detection test failure
     */
    private logDetectionTestFailure;
    /**
     * Log detection test retry failure
     */
    private logDetectionTestRetryFailure;
    /**
     * Log final detection results
     */
    private logDetectionResults;
    /**
     * Create a no-streaming capability result
     */
    private createNoStreamingCapability;
}
/**
 * Create a detector instance with configuration
 */
export declare function createSageMakerDetector(config: SageMakerConfig): SageMakerDetector;
