import { OAuthStateTransform } from './state';
import { AuthProviderRouteHandlers, AuthResolverContext, CookieConfigurer, ProfileTransform, SignInResolver } from '../types';
import { OAuthAuthenticator, OAuthAuthenticatorResult } from './types';
import { Config } from '@backstage/config';
/** @public */
export interface OAuthRouteHandlersOptions<TProfile> {
    authenticator: OAuthAuthenticator<any, TProfile>;
    appUrl: string;
    baseUrl: string;
    isOriginAllowed: (origin: string) => boolean;
    providerId: string;
    config: Config;
    resolverContext: AuthResolverContext;
    additionalScopes?: string[];
    stateTransform?: OAuthStateTransform;
    profileTransform?: ProfileTransform<OAuthAuthenticatorResult<TProfile>>;
    cookieConfigurer?: CookieConfigurer;
    signInResolver?: SignInResolver<OAuthAuthenticatorResult<TProfile>>;
}
/** @public */
export declare function createOAuthRouteHandlers<TProfile>(options: OAuthRouteHandlersOptions<TProfile>): AuthProviderRouteHandlers;
