import Router from "koa-router";
import { interactionPolicy } from "oidc-provider";
import { IdentityFederationBuilder } from "./federation";
import { ApplicationRoutes, ApplicationRoutesFactory, ApplicationRequestContext } from "./app.types";
import { ApplicationRenderer, ApplicationRendererFactory } from "./renderer";
import { DynamicConfiguration, ProviderConfigBuilder } from "./config";
export declare class ProviderApplicationBuilder {
    private readonly builder;
    readonly router: Router<any, ApplicationRequestContext>;
    private readonly logger;
    readonly federation: IdentityFederationBuilder;
    constructor(builder: ProviderConfigBuilder);
    private _prefix;
    get prefix(): string;
    _dangerouslySetPrefix(prefix: string): void;
    get idp(): import("../../idp").IdentityProvider;
    get op(): import("oidc-provider").Provider;
    readonly getURL: (path: string, withHost?: true | undefined) => string;
    private readonly wrapContext;
    private readonly errorHandler;
    private readonly routerMiddleware;
    setRendererFactory<F extends ApplicationRendererFactory>(factory: F, options?: F extends ApplicationRendererFactory<infer O> ? O : never): this;
    private _appRenderer?;
    get appRenderer(): ApplicationRenderer;
    setRoutesFactory(factory: ApplicationRoutesFactory): this;
    getRoutes(promptName?: string): ApplicationRoutes;
    private _routesFactory?;
    private readonly renderErrorProxy;
    private renderLogout;
    private readonly logoutSourceProxy;
    private renderLogoutEnd;
    private readonly postLogoutSuccessSourceProxy;
    private renderDeviceFlow;
    private readonly deviceFlowUserCodeInputSourceProxy;
    private renderDeviceFlowConfirm;
    private readonly deviceFlowUserCodeConfirmSourceProxy;
    private renderDeviceFlowEnd;
    private readonly deviceFlowSuccessSourceProxy;
    private readonly _config;
    setPrompts(prompts: interactionPolicy.Prompt[]): this;
    _dangerouslyGetDynamicConfiguration(): Partial<DynamicConfiguration>;
    _dangerouslyBuild(): void;
}
