import type { PlatformManager } from '#services/platform-manager/platform-manager.service';
import type { RequestHandler } from '#services/request-handler/request-handler.types';
import type { HttpHandler, RouteHandler } from '#services/http-handler/http-handler.types';
import type { Logger } from '#services/logger/logger.types';
import type { Platform } from '#services/platform-manager/platform-manager.types';
import type { DynamicRegistrationOptions, DynamicRegistrationRoutes, OpenIDConfiguration, RegistrationOverrides } from '#services/dynamic-registration/dynamic-registration.types';
export declare class DynamicRegistration {
    private readonly LOG_COMPONENT;
    private readonly APPLICATION_TYPE;
    private readonly TOKEN_ENDPOINT_AUTH_METHOD;
    private readonly TOOL_CONFIGURATION_CLAIM;
    private readonly PLATFORM_CONFIGURATION_CLAIM;
    private readonly DEFAULT_PLATFORM_NAME;
    private readonly DEFAULT_DYNAMIC_REGISTRATION_ROUTE;
    private readonly OPENID_CONFIGURATION_QUERY_PARAM;
    private readonly REGISTRATION_TOKEN_QUERY_PARAM;
    readonly FINALIZE_REGISTRATION_HTML_SNIPPET = "<script>(window.opener || window.parent).postMessage({subject:\"org.imsglobal.lti.close\"}, \"*\");</script>";
    private readonly options;
    private readonly routes;
    private readonly platformManager;
    private readonly requestHandler;
    private readonly httpHandler;
    private readonly logger;
    private handler;
    constructor(options: DynamicRegistrationOptions, routes: DynamicRegistrationRoutes, platformManager: PlatformManager, requestHandler: RequestHandler, httpHandler: HttpHandler, logger: Logger);
    prepareHttpRoutes(route?: string): void;
    setHandler(handler: RouteHandler): void;
    private buildDefaultRouteHandler;
    getOpenIDConfiguration(url: string): Promise<OpenIDConfiguration>;
    performRegistration(configuration: OpenIDConfiguration, registrationToken?: string, overrides?: RegistrationOverrides): Promise<Platform>;
    register(openidConfigurationUrl: string | undefined, registrationToken?: string, overrides?: RegistrationOverrides): Promise<string>;
    private resolvePlatformName;
    private buildRegistrationRequestBody;
    private buildMessage;
    private buildUrl;
    private getHostname;
    private deepMerge;
    private isPlainObject;
}
export default DynamicRegistration;
