import { GraphQLError } from 'graphql';
declare type FetchNewAccessToken = (refreshToken: string) => Promise<string | undefined>;
declare type IsUnauthenticatedError = (graphQLError: GraphQLError) => boolean;
declare type GetToken = () => string | undefined | null;
declare type IsAccessTokenValid = (accessToken?: string) => boolean;
declare type OnSuccessfulRefetch = (refreshToken?: string) => void;
declare type OnFailedRefresh = (error: any) => void;
interface Options {
    isUnauthenticatedError: IsUnauthenticatedError;
    getAccessToken: GetToken;
    getRefreshToken: GetToken;
    isAccessTokenValid: IsAccessTokenValid;
    fetchNewAccessToken: FetchNewAccessToken;
    authorizationHeaderKey: string;
    onSuccessfulRefresh?: OnSuccessfulRefetch;
    onFailedRefresh?: OnFailedRefresh;
}
export declare const getRefreshTokenLink: ({ isUnauthenticatedError, getAccessToken, getRefreshToken, isAccessTokenValid, fetchNewAccessToken, authorizationHeaderKey, onSuccessfulRefresh, onFailedRefresh, }: Options) => import("apollo-link").ApolloLink;
export {};
