/**
 * Authentication configuration
 */
export interface AuthConfig {
    /**
     * Whether authentication is enabled
     */
    enabled: boolean;
    /**
     * API key for authentication
     */
    apiKey?: string;
    /**
     * API key header name
     */
    apiKeyHeader: string;
}
/**
 * Authentication service
 */
export declare class AuthService {
    private config;
    /**
     * Create a new authentication service
     *
     * @param config Authentication configuration
     */
    constructor(config?: Partial<AuthConfig>);
    /**
     * Check if authentication is enabled
     *
     * @returns True if authentication is enabled
     */
    isEnabled(): boolean;
    /**
     * Get the API key header name
     *
     * @returns API key header name
     */
    getApiKeyHeader(): string;
    /**
     * Get the API key
     *
     * @returns API key or undefined if authentication is disabled
     */
    getApiKey(): string | undefined;
    /**
     * Authenticate a request
     *
     * @param headers Request headers
     * @throws AuthenticationError if authentication fails
     */
    authenticate(headers: Record<string, string | string[] | undefined>): void;
    /**
     * Get the API key from request headers
     *
     * @param headers Request headers
     * @returns API key or undefined if not found
     */
    private getApiKeyFromHeaders;
    /**
     * Generate a random API key
     *
     * @returns Random API key
     */
    private generateApiKey;
}
/**
 * Create an authentication service from environment variables
 *
 * @returns Authentication service
 */
export declare function createAuthServiceFromEnv(): AuthService;
