export interface Auth0Config {
    domain: string;
    audience: string;
    clientId?: string;
    clientSecret?: string;
}
export interface UserInfo {
    sub: string;
    email?: string;
    email_verified?: boolean;
    name?: string;
    picture?: string;
    given_name?: string;
    family_name?: string;
    nickname?: string;
    locale?: string;
    updated_at?: string;
}
export interface TokenValidationResult {
    valid: boolean;
    user?: UserInfo;
    error?: string;
    scopes?: string[];
}
export declare class Auth0Client {
    private config;
    private jwksClient;
    constructor(config: Auth0Config);
    /**
     * Get Auth0 OAuth authorization server metadata
     * Static configuration - no dynamic client registration for consistency
     */
    getAuthorizationServerMetadata(): Promise<{
        issuer: string;
        authorization_endpoint: string;
        token_endpoint: string;
        userinfo_endpoint: string;
        jwks_uri: string;
        scopes_supported: string[];
        response_types_supported: string[];
        response_modes_supported: string[];
        grant_types_supported: string[];
        subject_types_supported: string[];
        id_token_signing_alg_values_supported: string[];
        token_endpoint_auth_methods_supported: string[];
        code_challenge_methods_supported: string[];
        claims_supported: string[];
    }>;
    /**
     * Proxy authorization request to Auth0
     */
    proxyAuthorizeRequest(params: URLSearchParams): Promise<string>;
    /**
     * Proxy token request to Auth0
     */
    proxyTokenRequest(body: any): Promise<any>;
    /**
     * Validate access token with Auth0
     */
    validateToken(token: string): Promise<TokenValidationResult>;
    /**
     * Validate JWT token
     */
    private validateJWT;
    /**
     * Validate opaque token using userinfo endpoint
     */
    private validateOpaqueToken;
    /**
     * Fetch user info from Auth0 userinfo endpoint
     */
    private fetchUserInfo;
    /**
     * Check if user has required scopes for MCP operations
     */
    hasRequiredScopes(scopes: string[] | undefined, requiredScopes: string[]): boolean;
}
//# sourceMappingURL=auth0-client.d.ts.map