import React, { ReactNode } from "react";
import { User } from "../types";
export interface SignInOptions {
    callbackUrl?: string;
    redirect?: boolean;
    [key: string]: unknown;
}
export interface AuthSession {
    user: User | null;
    isLoading: boolean;
    isAuthenticated: boolean;
}
export interface AuthContextType extends AuthSession {
    signIn: (provider?: string, options?: SignInOptions) => Promise<void>;
    signOut: () => Promise<void>;
    updateUser: (userData: Partial<User>) => void;
}
export interface AuthProviderProps {
    children: ReactNode;
    getSession?: () => Promise<{
        user: User | null;
    }>;
    signInAdapter?: (provider?: string, options?: SignInOptions) => Promise<void>;
    signOutAdapter?: () => Promise<void>;
    onAuthStateChange?: (user: User | null) => void;
    initialSession?: {
        user: User | null;
    };
}
declare const AuthContext: React.Context<AuthContextType>;
export { AuthContext };
export declare const AuthProvider: React.FC<AuthProviderProps>;
//# sourceMappingURL=AuthProvider.d.ts.map