import { User } from "../../types";
import { SignInOptions } from "../AuthProvider";
interface SupabaseUser {
    id: string;
    email?: string;
    user_metadata?: {
        full_name?: string;
        avatar_url?: string;
        name?: string;
    };
    created_at?: string;
    updated_at?: string;
}
interface SupabaseSession {
    user: SupabaseUser | null;
}
interface SupabaseClient {
    auth: {
        getSession: () => Promise<{
            data: {
                session: SupabaseSession | null;
            };
        }>;
        signInWithOAuth: (options: {
            provider: string;
            options?: SignInOptions;
        }) => Promise<void>;
        signInWithPassword: (credentials: {
            email: string;
            password: string;
        }) => Promise<void>;
        signOut: () => Promise<void>;
        onAuthStateChange: (callback: (event: string, session: SupabaseSession | null) => void) => void;
    };
}
export declare const createSupabaseAdapter: (supabase?: SupabaseClient) => {
    getSession?: undefined;
    signInAdapter?: undefined;
    signOutAdapter?: undefined;
} | {
    getSession: () => Promise<{
        user: User;
    }>;
    signInAdapter: (provider?: string, options?: SignInOptions) => Promise<void>;
    signOutAdapter: () => Promise<void>;
};
export {};
//# sourceMappingURL=supabase.d.ts.map