import { User } from 'firebase/auth';
export interface FirebaseConfig {
    apiKey: string;
    authDomain: string;
    projectId: string;
    storageBucket: string;
    messagingSenderId: string;
    appId: string;
}
export interface AuthContextType {
    user: User | null;
    loading: boolean;
    error: Error | null;
    signInWithGoogle: () => Promise<void>;
    signInWithEmail: (email: string, password: string) => Promise<void>;
    signUp: (email: string, password: string) => Promise<void>;
    signOut: () => Promise<void>;
}
export interface ThemeColors {
    primary: string;
    secondary: string;
}
export interface AuthProviderProps {
    config?: FirebaseConfig;
    colors?: ThemeColors;
    children: React.ReactNode;
}
export interface AuthComponentProps {
    onSuccess?: () => void;
    onError?: (error: Error) => void;
    title?: string;
    logo?: React.ReactNode;
}
export interface UserRegistration {
    email: string;
    password: string;
    displayName: string;
}
export interface UserProfile {
    uid: string;
    email: string;
    displayName: string;
    phoneNumber?: string;
    dateOfBirth?: string;
    address?: string;
    organizations?: string[];
    role?: 'admin' | 'user';
    createdAt: Date;
}
//# sourceMappingURL=index.d.ts.map