import { Strategy } from 'passport';
import { PassportDoneCallback, PassportProfile } from '../passport';
import { ProfileTransform } from '../types';
import { OAuthAuthenticatorAuthenticateInput, OAuthAuthenticatorRefreshInput, OAuthAuthenticatorResult, OAuthAuthenticatorStartInput } from './types';
/** @public */
export type PassportOAuthResult = {
    fullProfile: PassportProfile;
    params: {
        id_token?: string;
        scope: string;
        token_type?: string;
        expires_in: number;
    };
    accessToken: string;
};
/** @public */
export type PassportOAuthPrivateInfo = {
    refreshToken?: string;
};
/** @public */
export type PassportOAuthDoneCallback = PassportDoneCallback<PassportOAuthResult, PassportOAuthPrivateInfo>;
/** @public */
export declare class PassportOAuthAuthenticatorHelper {
    #private;
    static defaultProfileTransform: ProfileTransform<OAuthAuthenticatorResult<PassportProfile>>;
    static from(strategy: Strategy): PassportOAuthAuthenticatorHelper;
    private constructor();
    start(input: OAuthAuthenticatorStartInput, options: Record<string, string>): Promise<{
        url: string;
        status?: number;
    }>;
    authenticate(input: OAuthAuthenticatorAuthenticateInput, options?: Record<string, string>): Promise<OAuthAuthenticatorResult<PassportProfile>>;
    refresh(input: OAuthAuthenticatorRefreshInput): Promise<OAuthAuthenticatorResult<PassportProfile>>;
    fetchProfile(accessToken: string): Promise<PassportProfile>;
}
