import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
import type { VpcAgentConfig, VpcAgentEnvironment } from './vpc-agent.types';
/**
 * Parse VPC Agent configuration from environment variables.
 *
 * @param env - Environment variables
 * @returns VPC Agent configuration
 */
export declare function parseConfigFromEnvironment(env: Partial<VpcAgentEnvironment>): VpcAgentConfig;
/**
 * VPC Agent Lambda Handler.
 *
 * Proxies requests from developer machines to private VPC resources.
 * Supports both TCP (raw socket) and HTTP protocols.
 *
 * Security features:
 * - Host whitelist validation
 * - Port whitelist validation
 * - IAM or API key authentication
 * - Request timeout enforcement
 * - Body size limits
 *
 * @see Requirements 10.1, 10.2, 10.3, 10.5, 10.6
 *
 * @example
 * ```typescript
 * const vpcAgent = new VpcAgent(config);
 *
 * export const handler = async (event: APIGatewayProxyEvent) => {
 *   return vpcAgent.handle(event);
 * };
 * ```
 */
export declare class VpcAgent {
    private readonly config;
    /**
     * Create a new VpcAgent instance.
     *
     * @param config - VPC Agent configuration
     */
    constructor(config: VpcAgentConfig);
    /**
     * Handle an incoming proxy request.
     *
     * Main entry point for the VPC Agent Lambda. Validates the request,
     * authenticates the caller, and proxies to the target VPC resource.
     *
     * @param event - API Gateway proxy event
     * @returns API Gateway proxy result
     *
     * @see Requirements 10.1, 10.2, 10.3
     */
    handle(event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult>;
    /**
     * Authenticate the incoming request.
     *
     * Supports IAM authentication (via API Gateway) or API key authentication.
     *
     * @param event - API Gateway event
     * @returns Authentication result
     *
     * @see Requirements 10.5
     */
    private authenticate;
    /**
     * Parse the VPC Agent request from the event body.
     *
     * @param event - API Gateway event
     * @returns Parsed request or null if invalid
     */
    private parseRequest;
    /**
     * Proxy the request to the target VPC resource.
     *
     * @param request - VPC Agent request
     * @param startTime - Request start timestamp
     * @returns VPC Agent response
     *
     * @see Requirements 10.2, 10.3
     */
    private proxyRequest;
    /**
     * Proxy a TCP request to the target.
     *
     * @param request - VPC Agent request
     * @param timeoutMs - Request timeout
     * @param startTime - Request start timestamp
     * @returns VPC Agent response
     */
    private proxyTcpRequest;
    /**
     * Proxy an HTTP request to the target.
     *
     * @param request - VPC Agent request
     * @param timeoutMs - Request timeout
     * @param startTime - Request start timestamp
     * @returns VPC Agent response
     */
    private proxyHttpRequest;
    /**
     * Create a success response.
     *
     * @param response - VPC Agent response
     * @returns API Gateway proxy result
     */
    private createSuccessResponse;
    /**
     * Create an error response.
     *
     * @param statusCode - HTTP status code
     * @param errorCode - Error code
     * @param message - Error message
     * @returns API Gateway proxy result
     */
    private createErrorResponse;
}
/**
 * Create a VPC Agent handler from environment configuration.
 *
 * Factory function for creating a VPC Agent handler that reads
 * configuration from environment variables.
 *
 * @returns Lambda handler function
 *
 * @example
 * ```typescript
 * export const handler = createVpcAgentHandler();
 * ```
 */
export declare function createVpcAgentHandler(): (event: APIGatewayProxyEvent) => Promise<APIGatewayProxyResult>;
