import React from 'react';
import { NextAuthConfig } from '../types';
import { AuthServiceClient } from 'authservice-core';
interface NextAuthContextType {
    user: any;
    isLoading: boolean;
    isAuthenticated: boolean;
    client: AuthServiceClient;
    login: (options: any) => Promise<{
        requiresMfa?: boolean;
    }>;
    signup: (options: any) => Promise<void>;
    logout: () => Promise<void>;
    verifyMfa: (options: any) => Promise<void>;
    refreshUser: () => Promise<void>;
    loading: boolean;
    error: Error | null;
    hasPermission: (permission: string) => boolean;
    hasAnyPermission: (permissions: string[]) => boolean;
    hasAllPermissions: (permissions: string[]) => boolean;
    redirectToLogin: (returnUrl?: string) => void;
    redirectToUnauthorized: () => void;
}
export interface NextAuthProviderProps {
    children: React.ReactNode;
    config: NextAuthConfig;
    initialUser?: any;
}
export declare function NextAuthProvider({ children, config }: NextAuthProviderProps): React.JSX.Element;
export declare function useNextAuth(): NextAuthContextType;
export {};
//# sourceMappingURL=provider.d.ts.map