import * as http from 'http';
export interface OAuthRoutesConfig {
    provider: 'auth0' | 'entra';
    auth0Domain: string;
    auth0Audience: string;
    entraTenantId: string;
    entraClientId: string;
    entraClientSecret: string;
    entraAuthority: string;
}
export declare class OAuthRoutes {
    private auth0Client?;
    private entraClient?;
    private config;
    constructor(config: OAuthRoutesConfig);
    /**
     * Handle OAuth authorization server metadata endpoint
     * RFC 8414 compliant
     */
    handleAuthorizationServerMetadata(_req: http.IncomingMessage, res: http.ServerResponse): Promise<void>;
    /**
     * Handle OAuth authorize endpoint (proxy to MS Entra)
     * IGNORES client_id from Claude.ai and uses static Azure App Registration
     */
    handleAuthorize(req: http.IncomingMessage, res: http.ServerResponse): Promise<void>;
    /**
     * Handle OAuth token endpoint (proxy to MS Entra)
     * IGNORES client credentials from Claude.ai and uses static Azure App Registration
     */
    handleToken(req: http.IncomingMessage, res: http.ServerResponse): Promise<void>;
    /**
     * Send OAuth error response
     */
    private sendOAuthError;
    /**
     * Read request body as string
     */
    private readRequestBody;
}
//# sourceMappingURL=routes.d.ts.map