import React from "react";
import { TeamMemberInfo } from "../api-helpers/types";
import { SupabaseSession, SupabaseTeam, SupabaseUser, SupabaseUserProfile } from "../supabase-client/supabase-types";
export interface AuthContextValue {
    sessionData: {
        type: "authenticated";
        session: SupabaseSession;
        team: SupabaseTeam;
        userProfile: SupabaseUserProfile;
        teamMembers: TeamMemberInfo[];
    } | {
        type: "waitlisted";
        session: SupabaseSession;
        team: SupabaseTeam;
        userProfile: SupabaseUserProfile;
        teamMembers: TeamMemberInfo[];
    } | {
        type: "unauthenticated";
    } | {
        type: "loading";
    };
}
export declare const AuthContext: React.Context<AuthContextValue>;
export declare const AuthProvider: (props: {
    children: React.ReactNode;
}) => React.JSX.Element;
export declare function useIsUserLoading(): boolean;
export declare function useSession(): SupabaseSession | null;
export declare function useUser(): SupabaseUser | null;
export declare function useIsAdminUser(): boolean;
export declare function useIsAuthenticated(): boolean;
export declare function useIsWaitlistedUser(): boolean;
export declare function useTeam(): SupabaseTeam | null;
export declare function useTrial(): {
    state: "paid";
} | {
    state: "active";
    daysRemaining: number;
} | {
    state: "expired";
};
//# sourceMappingURL=auth-provider.d.ts.map