declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zza extends com.google.firebase.encoders.ObjectEncoder<com.google.firebase.messaging.reporting.MessagingClientEvent> {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zza>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzaa {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzaa>;
							public encode(param0: any, param1: any): void;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzab {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzab>;
							public add(param0: com.google.firebase.encoders.FieldDescriptor, param1: number): com.google.firebase.encoders.ObjectEncoderContext;
							public nested(param0: com.google.firebase.encoders.FieldDescriptor): com.google.firebase.encoders.ObjectEncoderContext;
							public add(param0: string, param1: any): com.google.firebase.encoders.ObjectEncoderContext;
							public add(param0: com.google.firebase.encoders.FieldDescriptor, param1: any): com.google.firebase.encoders.ObjectEncoderContext;
							public inline(param0: any): com.google.firebase.encoders.ObjectEncoderContext;
							public add(param0: string, param1: number): com.google.firebase.encoders.ObjectEncoderContext;
							public add(param0: string, param1: boolean): com.google.firebase.encoders.ObjectEncoderContext;
							public nested(param0: string): com.google.firebase.encoders.ObjectEncoderContext;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzac {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzac>;
							public encode(param0: any, param1: any): void;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzad extends java.lang.Object /* com.google.firebase.encoders.config.EncoderConfig<com.google.android.gms.internal.firebase_messaging.zzad>*/ {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzad>;
							public constructor();
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzae {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzae>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzaf {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzaf>;
							public add(param0: string): com.google.firebase.encoders.ValueEncoderContext;
							public add(param0: number): com.google.firebase.encoders.ValueEncoderContext;
							public add(param0: native.Array<number>): com.google.firebase.encoders.ValueEncoderContext;
							public add(param0: boolean): com.google.firebase.encoders.ValueEncoderContext;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzb extends com.google.firebase.encoders.ObjectEncoder<com.google.firebase.messaging.reporting.MessagingClientEventExtension> {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzb>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzc extends java.lang.Object /* com.google.firebase.encoders.ObjectEncoder<com.google.android.gms.internal.firebase_messaging.zze>*/ {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzc>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzd {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzd>;
							public configure(param0: com.google.firebase.encoders.config.EncoderConfig<any>): void;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export abstract class zze {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zze>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzf {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzf>;
							/**
							 * Constructs a new instance of the com.google.android.gms.internal.firebase_messaging.zzf interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
							 */
							public constructor(implementation: {
							});
							public constructor();
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzg {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzg>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzh extends com.google.android.gms.internal.firebase_messaging.zzf {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzh>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzi {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzi>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzj {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzj>;
							public write(param0: native.Array<number>): void;
							public write(param0: native.Array<number>, param1: number, param2: number): void;
							public write(param0: number): void;
							public toString(): string;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzk {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzk>;
							public mark(param0: number): void;
							public skip(param0: number): number;
							public available(): number;
							public read(): number;
							public read(param0: native.Array<number>, param1: number, param2: number): number;
							public reset(): void;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzl {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzl>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzm {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzm>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export abstract class zzn {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzn>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzo extends java.lang.ref.WeakReference<java.lang.Throwable> {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzo>;
							public hashCode(): number;
							public equals(param0: any): boolean;
							public constructor(param0: java.lang.Throwable, param1: java.lang.ref.ReferenceQueue<java.lang.Throwable>);
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzp {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzp>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzq extends com.google.android.gms.internal.firebase_messaging.zzn {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzq>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzr extends com.google.android.gms.internal.firebase_messaging.zzn {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzr>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzs extends com.google.android.gms.internal.firebase_messaging.zzn {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzs>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzt {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzt>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzu extends com.google.android.gms.internal.firebase_messaging.zzz {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzu>;
							public hashCode(): number;
							public annotationType(): java.lang.Class<any>;
							public toString(): string;
							public equals(param0: any): boolean;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzv {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzv>;
							public constructor();
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzw {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzw>;
							public write(param0: native.Array<number>): void;
							public write(param0: native.Array<number>, param1: number, param2: number): void;
							public write(param0: number): void;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzx {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzx>;
							/**
							 * Constructs a new instance of the com.google.android.gms.internal.firebase_messaging.zzx interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
							 */
							public constructor(implementation: {
								getNumber(): number;
							});
							public constructor();
							public getNumber(): number;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzy {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzy>;
							public static values(): any /* native.Array<com.google.android.gms.internal.firebase_messaging.zzy>*/;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module android {
			export module gms {
				export module internal {
					export module firebase_messaging {
						export class zzz {
							public static class: java.lang.Class<com.google.android.gms.internal.firebase_messaging.zzz>;
							/**
							 * Constructs a new instance of the com.google.android.gms.internal.firebase_messaging.zzz interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
							 */
							public constructor(implementation: {
								zza(): number;
								zzb(): any /* com.google.android.gms.internal.firebase_messaging.zzy*/;
							});
							public constructor();
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module iid {
				export class FirebaseInstanceIdReceiver {
					public static class: java.lang.Class<com.google.firebase.iid.FirebaseInstanceIdReceiver>;
					public constructor();
					public onMessageReceive(param0: globalAndroid.content.Context, param1: com.google.android.gms.cloudmessaging.CloudMessage): number;
					public onNotificationDismissed(param0: globalAndroid.content.Context, param1: globalAndroid.os.Bundle): void;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class BuildConfig {
					public static class: java.lang.Class<com.google.firebase.messaging.BuildConfig>;
					public static VERSION_NAME: string;
					public constructor();
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class CommonNotificationBuilder {
					public static class: java.lang.Class<com.google.firebase.messaging.CommonNotificationBuilder>;
					public static METADATA_DEFAULT_COLOR: string;
					public static METADATA_DEFAULT_ICON: string;
					public static METADATA_DEFAULT_CHANNEL_ID: string;
					public static FCM_FALLBACK_NOTIFICATION_CHANNEL: string;
					public static FCM_FALLBACK_NOTIFICATION_CHANNEL_LABEL: string;
					public static createNotificationInfo(param0: globalAndroid.content.Context, param1: string, param2: com.google.firebase.messaging.NotificationParams, param3: string, param4: globalAndroid.content.res.Resources, param5: globalAndroid.content.pm.PackageManager, param6: globalAndroid.os.Bundle): com.google.firebase.messaging.CommonNotificationBuilder.DisplayNotificationInfo;
					public static getOrCreateChannel(param0: globalAndroid.content.Context, param1: string, param2: globalAndroid.os.Bundle): string;
				}
				export module CommonNotificationBuilder {
					export class DisplayNotificationInfo {
						public static class: java.lang.Class<com.google.firebase.messaging.CommonNotificationBuilder.DisplayNotificationInfo>;
						public notificationBuilder: androidx.core.app.NotificationCompat.Builder;
						public tag: string;
						public id: number;
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class Constants {
					public static class: java.lang.Class<com.google.firebase.messaging.Constants>;
					public static TAG: string;
					public static FCM_WAKE_LOCK: string;
					public static WAKE_LOCK_ACQUIRE_TIMEOUT_MILLIS: number;
					public static IPC_BUNDLE_KEY_SEND_ERROR: string;
				}
				export module Constants {
					export class AnalyticsKeys {
						public static class: java.lang.Class<com.google.firebase.messaging.Constants.AnalyticsKeys>;
						public static PREFIX: string;
						public static ENABLED: string;
						public static COMPOSER_ID: string;
						public static COMPOSER_LABEL: string;
						public static MESSAGE_TIMESTAMP: string;
						public static MESSAGE_USE_DEVICE_TIME: string;
						public static TRACK_CONVERSIONS: string;
						public static ABT_EXPERIMENT: string;
						public static MESSAGE_LABEL: string;
						public static MESSAGE_CHANNEL: string;
					}
					export class FirelogAnalytics {
						public static class: java.lang.Class<com.google.firebase.messaging.Constants.FirelogAnalytics>;
						public static FCM_LOG_SOURCE: string;
					}
					export class MessageNotificationKeys {
						public static class: java.lang.Class<com.google.firebase.messaging.Constants.MessageNotificationKeys>;
						public static RESERVED_PREFIX: string;
						public static NOTIFICATION_PREFIX: string;
						public static NOTIFICATION_PREFIX_OLD: string;
						public static ENABLE_NOTIFICATION: string;
						public static DO_NOT_PROXY: string;
						public static NO_UI: string;
						public static TITLE: string;
						public static BODY: string;
						public static ICON: string;
						public static IMAGE_URL: string;
						public static TAG: string;
						public static COLOR: string;
						public static TICKER: string;
						public static LOCAL_ONLY: string;
						public static STICKY: string;
						public static NOTIFICATION_PRIORITY: string;
						public static DEFAULT_SOUND: string;
						public static DEFAULT_VIBRATE_TIMINGS: string;
						public static DEFAULT_LIGHT_SETTINGS: string;
						public static NOTIFICATION_COUNT: string;
						public static VISIBILITY: string;
						public static VIBRATE_TIMINGS: string;
						public static LIGHT_SETTINGS: string;
						public static EVENT_TIME: string;
						public static SOUND_2: string;
						public static SOUND: string;
						public static CLICK_ACTION: string;
						public static LINK: string;
						public static LINK_ANDROID: string;
						public static CHANNEL: string;
						public static ANALYTICS_DATA: string;
						public static TEXT_RESOURCE_SUFFIX: string;
						public static TEXT_ARGS_SUFFIX: string;
					}
					export class MessagePayloadKeys {
						public static class: java.lang.Class<com.google.firebase.messaging.Constants.MessagePayloadKeys>;
						public static RESERVED_PREFIX: string;
						public static FROM: string;
						public static RAW_DATA: string;
						public static MESSAGE_TYPE: string;
						public static COLLAPSE_KEY: string;
						public static MSGID_SERVER: string;
						public static TO: string;
						public static MSGID: string;
						public static TTL: string;
						public static SENT_TIME: string;
						public static ORIGINAL_PRIORITY: string;
						public static DELIVERED_PRIORITY: string;
						public static PRIORITY_V19: string;
						public static PRIORITY_REDUCED_V19: string;
						public static RESERVED_CLIENT_LIB_PREFIX: string;
						public static SENDER_ID: string;
						public static extractDeveloperDefinedPayload(param0: globalAndroid.os.Bundle): androidx.collection.ArrayMap<string,string>;
					}
					export class MessageTypes {
						public static class: java.lang.Class<com.google.firebase.messaging.Constants.MessageTypes>;
						public static MESSAGE: string;
						public static DELETED: string;
						public static SEND_EVENT: string;
						public static SEND_ERROR: string;
					}
					export class ScionAnalytics {
						public static class: java.lang.Class<com.google.firebase.messaging.Constants.ScionAnalytics>;
						public static ORIGIN_FCM: string;
						public static PARAM_SOURCE: string;
						public static PARAM_MEDIUM: string;
						public static PARAM_LABEL: string;
						public static PARAM_TOPIC: string;
						public static PARAM_CAMPAIGN: string;
						public static PARAM_MESSAGE_NAME: string;
						public static PARAM_MESSAGE_TIME: string;
						public static PARAM_MESSAGE_DEVICE_TIME: string;
						public static PARAM_MESSAGE_CHANNEL: string;
						public static PARAM_MESSAGE_TYPE: string;
						public static EVENT_FIREBASE_CAMPAIGN: string;
						public static EVENT_NOTIFICATION_RECEIVE: string;
						public static EVENT_NOTIFICATION_OPEN: string;
						public static EVENT_NOTIFICATION_DISMISS: string;
						public static EVENT_NOTIFICATION_FOREGROUND: string;
						public static USER_PROPERTY_FIREBASE_LAST_NOTIFICATION: string;
					}
					export module ScionAnalytics {
						export class MessageType {
							public static class: java.lang.Class<com.google.firebase.messaging.Constants.ScionAnalytics.MessageType>;
							/**
							 * Constructs a new instance of the com.google.firebase.messaging.Constants$ScionAnalytics$MessageType interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
							 */
							public constructor(implementation: {
							});
							public constructor();
							public static DATA_MESSAGE: string;
							public static DISPLAY_NOTIFICATION: string;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class DisplayNotification {
					public static class: java.lang.Class<com.google.firebase.messaging.DisplayNotification>;
					public constructor(param0: globalAndroid.content.Context, param1: com.google.firebase.messaging.NotificationParams, param2: java.util.concurrent.Executor);
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export abstract class EnhancedIntentService {
					public static class: java.lang.Class<com.google.firebase.messaging.EnhancedIntentService>;
					public onBind(param0: globalAndroid.content.Intent): globalAndroid.os.IBinder;
					public getStartCommandIntent(param0: globalAndroid.content.Intent): globalAndroid.content.Intent;
					public constructor();
					public onStartCommand(param0: globalAndroid.content.Intent, param1: number, param2: number): number;
					public onDestroy(): void;
					public handleIntentOnMainThread(param0: globalAndroid.content.Intent): boolean;
					public handleIntent(param0: globalAndroid.content.Intent): void;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class FcmBroadcastProcessor {
					public static class: java.lang.Class<com.google.firebase.messaging.FcmBroadcastProcessor>;
					public constructor(param0: globalAndroid.content.Context);
					public constructor(param0: globalAndroid.content.Context, param1: java.util.concurrent.ExecutorService);
					public process(param0: globalAndroid.content.Intent): com.google.android.gms.tasks.Task<java.lang.Integer>;
					public static reset(): void;
					public startMessagingService(param0: globalAndroid.content.Context, param1: globalAndroid.content.Intent): com.google.android.gms.tasks.Task<java.lang.Integer>;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class FcmExecutors {
					public static class: java.lang.Class<com.google.firebase.messaging.FcmExecutors>;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class FcmLifecycleCallbacks {
					public static class: java.lang.Class<com.google.firebase.messaging.FcmLifecycleCallbacks>;
					public onActivitySaveInstanceState(param0: globalAndroid.app.Activity, param1: globalAndroid.os.Bundle): void;
					public onActivityStarted(param0: globalAndroid.app.Activity): void;
					public onActivityCreated(param0: globalAndroid.app.Activity, param1: globalAndroid.os.Bundle): void;
					public onActivityStopped(param0: globalAndroid.app.Activity): void;
					public onActivityPaused(param0: globalAndroid.app.Activity): void;
					public onActivityDestroyed(param0: globalAndroid.app.Activity): void;
					public onActivityResumed(param0: globalAndroid.app.Activity): void;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class FirebaseMessaging {
					public static class: java.lang.Class<com.google.firebase.messaging.FirebaseMessaging>;
					public static INSTANCE_ID_SCOPE: string;
					public isAutoInitEnabled(): boolean;
					public subscribeToTopic(param0: string): com.google.android.gms.tasks.Task<java.lang.Void>;
					public send(param0: com.google.firebase.messaging.RemoteMessage): void;
					public getToken(): com.google.android.gms.tasks.Task<string>;
					public static getInstance(): com.google.firebase.messaging.FirebaseMessaging;
					public setAutoInitEnabled(param0: boolean): void;
					public deleteToken(): com.google.android.gms.tasks.Task<java.lang.Void>;
					public unsubscribeFromTopic(param0: string): com.google.android.gms.tasks.Task<java.lang.Void>;
					public deliveryMetricsExportToBigQueryEnabled(): boolean;
					public setDeliveryMetricsExportToBigQuery(param0: boolean): void;
					public static getTransportFactory(): com.google.android.datatransport.TransportFactory;
				}
				export module FirebaseMessaging {
					export class AutoInit {
						public static class: java.lang.Class<com.google.firebase.messaging.FirebaseMessaging.AutoInit>;
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class FirebaseMessagingRegistrar {
					public static class: java.lang.Class<com.google.firebase.messaging.FirebaseMessagingRegistrar>;
					public constructor();
					public getComponents(): java.util.List<com.google.firebase.components.Component<any>>;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class FirebaseMessagingService extends com.google.firebase.messaging.EnhancedIntentService {
					public static class: java.lang.Class<com.google.firebase.messaging.FirebaseMessagingService>;
					public static ACTION_DIRECT_BOOT_REMOTE_INTENT: string;
					public onNewToken(param0: string): void;
					public getStartCommandIntent(param0: globalAndroid.content.Intent): globalAndroid.content.Intent;
					public constructor();
					public onMessageReceived(param0: com.google.firebase.messaging.RemoteMessage): void;
					public onDeletedMessages(): void;
					public onSendError(param0: string, param1: java.lang.Exception): void;
					public handleIntent(param0: globalAndroid.content.Intent): void;
					public onMessageSent(param0: string): void;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class GmsRpc {
					public static class: java.lang.Class<com.google.firebase.messaging.GmsRpc>;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class ImageDownload {
					public static class: java.lang.Class<com.google.firebase.messaging.ImageDownload>;
					public start(param0: java.util.concurrent.Executor): void;
					public close(): void;
					public getTask(): com.google.android.gms.tasks.Task<globalAndroid.graphics.Bitmap>;
					public static create(param0: string): com.google.firebase.messaging.ImageDownload;
					public blockingDownload(): globalAndroid.graphics.Bitmap;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class MessagingAnalytics {
					public static class: java.lang.Class<com.google.firebase.messaging.MessagingAnalytics>;
					public constructor();
					public static logNotificationOpen(param0: globalAndroid.os.Bundle): void;
					public static logNotificationDismiss(param0: globalAndroid.content.Intent): void;
					public static shouldUploadScionMetrics(param0: globalAndroid.content.Intent): boolean;
					public static logNotificationReceived(param0: globalAndroid.content.Intent): void;
					public static shouldUploadScionMetrics(param0: globalAndroid.os.Bundle): boolean;
					public static logNotificationForeground(param0: globalAndroid.content.Intent): void;
					public static shouldUploadFirelogAnalytics(param0: globalAndroid.content.Intent): boolean;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class Metadata {
					public static class: java.lang.Class<com.google.firebase.messaging.Metadata>;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class NotificationParams {
					public static class: java.lang.Class<com.google.firebase.messaging.NotificationParams>;
					public getLocalizationResourceForKey(param0: string): string;
					public paramsForAnalyticsIntent(): globalAndroid.os.Bundle;
					public static isNotification(param0: globalAndroid.os.Bundle): boolean;
					public getString(param0: string): string;
					public paramsWithReservedKeysRemoved(): globalAndroid.os.Bundle;
					public getLong(param0: string): java.lang.Long;
					public constructor(param0: globalAndroid.os.Bundle);
					public getPossiblyLocalizedString(param0: globalAndroid.content.res.Resources, param1: string, param2: string): string;
					public getNotificationChannelId(): string;
					public getBoolean(param0: string): boolean;
					public getVibrateTimings(): native.Array<number>;
					public getLocalizedString(param0: globalAndroid.content.res.Resources, param1: string, param2: string): string;
					public isNotification(): boolean;
					public getInteger(param0: string): java.lang.Integer;
					public getLocalizationArgsForKey(param0: string): native.Array<any>;
					public getLink(): globalAndroid.net.Uri;
					public hasImage(): boolean;
					public getSoundResourceName(): string;
					public getJSONArray(param0: string): org.json.JSONArray;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class RemoteMessage {
					public static class: java.lang.Class<com.google.firebase.messaging.RemoteMessage>;
					public static PRIORITY_UNKNOWN: number;
					public static PRIORITY_HIGH: number;
					public static PRIORITY_NORMAL: number;
					public static CREATOR: globalAndroid.os.Parcelable.Creator<com.google.firebase.messaging.RemoteMessage>;
					public getRawData(): native.Array<number>;
					public getPriority(): number;
					public getSenderId(): string;
					public getMessageId(): string;
					public toIntent(): globalAndroid.content.Intent;
					public getFrom(): string;
					public getTo(): string;
					public getSentTime(): number;
					public getOriginalPriority(): number;
					public constructor(param0: globalAndroid.os.Bundle);
					public getNotification(): com.google.firebase.messaging.RemoteMessage.Notification;
					public getData(): java.util.Map<string,string>;
					public getMessageType(): string;
					public getCollapseKey(): string;
					public writeToParcel(param0: globalAndroid.os.Parcel, param1: number): void;
					public getTtl(): number;
				}
				export module RemoteMessage {
					export class Builder {
						public static class: java.lang.Class<com.google.firebase.messaging.RemoteMessage.Builder>;
						public setMessageType(param0: string): com.google.firebase.messaging.RemoteMessage.Builder;
						public setData(param0: java.util.Map<string,string>): com.google.firebase.messaging.RemoteMessage.Builder;
						public build(): com.google.firebase.messaging.RemoteMessage;
						public setCollapseKey(param0: string): com.google.firebase.messaging.RemoteMessage.Builder;
						public setRawData(param0: native.Array<number>): com.google.firebase.messaging.RemoteMessage.Builder;
						public setTtl(param0: number): com.google.firebase.messaging.RemoteMessage.Builder;
						public addData(param0: string, param1: string): com.google.firebase.messaging.RemoteMessage.Builder;
						public clearData(): com.google.firebase.messaging.RemoteMessage.Builder;
						public setMessageId(param0: string): com.google.firebase.messaging.RemoteMessage.Builder;
						public constructor(param0: string);
					}
					export class MessagePriority {
						public static class: java.lang.Class<com.google.firebase.messaging.RemoteMessage.MessagePriority>;
						/**
						 * Constructs a new instance of the com.google.firebase.messaging.RemoteMessage$MessagePriority interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
						 */
						public constructor(implementation: {
						});
						public constructor();
					}
					export class Notification {
						public static class: java.lang.Class<com.google.firebase.messaging.RemoteMessage.Notification>;
						public getDefaultSound(): boolean;
						public getChannelId(): string;
						public getClickAction(): string;
						public getBody(): string;
						public getBodyLocalizationArgs(): native.Array<string>;
						public getLocalOnly(): boolean;
						public getDefaultVibrateSettings(): boolean;
						public getVisibility(): java.lang.Integer;
						public getTitleLocalizationArgs(): native.Array<string>;
						public getSound(): string;
						public getNotificationPriority(): java.lang.Integer;
						public getVibrateTimings(): native.Array<number>;
						public getTicker(): string;
						public getLightSettings(): native.Array<number>;
						public getIcon(): string;
						public getNotificationCount(): java.lang.Integer;
						public getLink(): globalAndroid.net.Uri;
						public getColor(): string;
						public getSticky(): boolean;
						public getTitleLocalizationKey(): string;
						public getTitle(): string;
						public getImageUrl(): globalAndroid.net.Uri;
						public getEventTime(): java.lang.Long;
						public getTag(): string;
						public getDefaultLightSettings(): boolean;
						public getBodyLocalizationKey(): string;
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class RemoteMessageCreator extends globalAndroid.os.Parcelable.Creator<com.google.firebase.messaging.RemoteMessage> {
					public static class: java.lang.Class<com.google.firebase.messaging.RemoteMessageCreator>;
					public static CONTENT_DESCRIPTION: number;
					public constructor();
					public newArray(param0: number): native.Array<com.google.firebase.messaging.RemoteMessage>;
					public createFromParcel(param0: globalAndroid.os.Parcel): com.google.firebase.messaging.RemoteMessage;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class RequestDeduplicator {
					public static class: java.lang.Class<com.google.firebase.messaging.RequestDeduplicator>;
				}
				export module RequestDeduplicator {
					export class GetTokenRequest {
						public static class: java.lang.Class<com.google.firebase.messaging.RequestDeduplicator.GetTokenRequest>;
						/**
						 * Constructs a new instance of the com.google.firebase.messaging.RequestDeduplicator$GetTokenRequest interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
						 */
						public constructor(implementation: {
							start(): com.google.android.gms.tasks.Task<string>;
						});
						public constructor();
						public start(): com.google.android.gms.tasks.Task<string>;
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class SendException {
					public static class: java.lang.Class<com.google.firebase.messaging.SendException>;
					public static ERROR_UNKNOWN: number;
					public static ERROR_INVALID_PARAMETERS: number;
					public static ERROR_SIZE: number;
					public static ERROR_TTL_EXCEEDED: number;
					public static ERROR_TOO_MANY_MESSAGES: number;
					public getErrorCode(): number;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class ServiceStarter {
					public static class: java.lang.Class<com.google.firebase.messaging.ServiceStarter>;
					public static SUCCESS: number;
					public static ERROR_UNKNOWN: number;
					public static setForTesting(param0: com.google.firebase.messaging.ServiceStarter): void;
					public startMessagingService(param0: globalAndroid.content.Context, param1: globalAndroid.content.Intent): number;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class SharedPreferencesQueue {
					public static class: java.lang.Class<com.google.firebase.messaging.SharedPreferencesQueue>;
					public remove(param0: any): boolean;
					public peek(): string;
					public add(param0: string): boolean;
					public serialize(): string;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class Store {
					public static class: java.lang.Class<com.google.firebase.messaging.Store>;
					public constructor(param0: globalAndroid.content.Context);
					public isEmpty(): boolean;
					public deleteAll(): void;
					public saveToken(param0: string, param1: string, param2: string, param3: string): void;
					public deleteToken(param0: string, param1: string): void;
					public getToken(param0: string, param1: string): com.google.firebase.messaging.Store.Token;
				}
				export module Store {
					export class Token {
						public static class: java.lang.Class<com.google.firebase.messaging.Store.Token>;
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class SyncTask {
					public static class: java.lang.Class<com.google.firebase.messaging.SyncTask>;
					public run(): void;
					public constructor(param0: com.google.firebase.messaging.FirebaseMessaging, param1: number);
				}
				export module SyncTask {
					export class ConnectivityChangeReceiver {
						public static class: java.lang.Class<com.google.firebase.messaging.SyncTask.ConnectivityChangeReceiver>;
						public registerReceiver(): void;
						public constructor(param0: com.google.firebase.messaging.SyncTask);
						public onReceive(param0: globalAndroid.content.Context, param1: globalAndroid.content.Intent): void;
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class TopicOperation {
					public static class: java.lang.Class<com.google.firebase.messaging.TopicOperation>;
					public equals(param0: any): boolean;
					public static subscribe(param0: string): com.google.firebase.messaging.TopicOperation;
					public static unsubscribe(param0: string): com.google.firebase.messaging.TopicOperation;
					public getTopic(): string;
					public getOperation(): string;
					public serialize(): string;
					public hashCode(): number;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class TopicsStore {
					public static class: java.lang.Class<com.google.firebase.messaging.TopicsStore>;
					public static getInstance(param0: globalAndroid.content.Context, param1: java.util.concurrent.Executor): com.google.firebase.messaging.TopicsStore;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class TopicsSubscriber {
					public static class: java.lang.Class<com.google.firebase.messaging.TopicsSubscriber>;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class TopicsSyncTask {
					public static class: java.lang.Class<com.google.firebase.messaging.TopicsSyncTask>;
					public run(): void;
				}
				export module TopicsSyncTask {
					export class ConnectivityChangeReceiver {
						public static class: java.lang.Class<com.google.firebase.messaging.TopicsSyncTask.ConnectivityChangeReceiver>;
						public registerReceiver(): void;
						public onReceive(param0: globalAndroid.content.Context, param1: globalAndroid.content.Intent): void;
						public constructor(param0: com.google.firebase.messaging.TopicsSyncTask, param1: com.google.firebase.messaging.TopicsSyncTask);
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class WakeLockHolder {
					public static class: java.lang.Class<com.google.firebase.messaging.WakeLockHolder>;
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class WithinAppServiceBinder {
					public static class: java.lang.Class<com.google.firebase.messaging.WithinAppServiceBinder>;
				}
				export module WithinAppServiceBinder {
					export class IntentHandler {
						public static class: java.lang.Class<com.google.firebase.messaging.WithinAppServiceBinder.IntentHandler>;
						/**
						 * Constructs a new instance of the com.google.firebase.messaging.WithinAppServiceBinder$IntentHandler interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
						 */
						public constructor(implementation: {
							handle(param0: globalAndroid.content.Intent): com.google.android.gms.tasks.Task<java.lang.Void>;
						});
						public constructor();
						public handle(param0: globalAndroid.content.Intent): com.google.android.gms.tasks.Task<java.lang.Void>;
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export class WithinAppServiceConnection {
					public static class: java.lang.Class<com.google.firebase.messaging.WithinAppServiceConnection>;
					public onServiceConnected(param0: globalAndroid.content.ComponentName, param1: globalAndroid.os.IBinder): void;
					public onServiceDisconnected(param0: globalAndroid.content.ComponentName): void;
				}
				export module WithinAppServiceConnection {
					export class BindRequest {
						public static class: java.lang.Class<com.google.firebase.messaging.WithinAppServiceConnection.BindRequest>;
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export module reporting {
					export class MessagingClientEvent {
						public static class: java.lang.Class<com.google.firebase.messaging.reporting.MessagingClientEvent>;
						public getMessageId(): string;
						public getCollapseKey(): string;
						public getProjectNumber(): number;
						public getEvent(): com.google.firebase.messaging.reporting.MessagingClientEvent.Event;
						public getComposerLabel(): string;
						public getInstanceId(): string;
						public getSdkPlatform(): com.google.firebase.messaging.reporting.MessagingClientEvent.SDKPlatform;
						public getTtl(): number;
						public getCampaignId(): number;
						public static newBuilder(): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
						public getPackageName(): string;
						public getTopic(): string;
						public getPriority(): number;
						public static getDefaultInstance(): com.google.firebase.messaging.reporting.MessagingClientEvent;
						public getMessageType(): com.google.firebase.messaging.reporting.MessagingClientEvent.MessageType;
						public getAnalyticsLabel(): string;
						public getBulkId(): number;
					}
					export module MessagingClientEvent {
						export class Builder {
							public static class: java.lang.Class<com.google.firebase.messaging.reporting.MessagingClientEvent.Builder>;
							public setEvent(param0: com.google.firebase.messaging.reporting.MessagingClientEvent.Event): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setSdkPlatform(param0: com.google.firebase.messaging.reporting.MessagingClientEvent.SDKPlatform): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setPackageName(param0: string): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setMessageId(param0: string): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setCampaignId(param0: number): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setComposerLabel(param0: string): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setProjectNumber(param0: number): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setBulkId(param0: number): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setMessageType(param0: com.google.firebase.messaging.reporting.MessagingClientEvent.MessageType): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setCollapseKey(param0: string): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public build(): com.google.firebase.messaging.reporting.MessagingClientEvent;
							public setAnalyticsLabel(param0: string): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setInstanceId(param0: string): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setTtl(param0: number): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setPriority(param0: number): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
							public setTopic(param0: string): com.google.firebase.messaging.reporting.MessagingClientEvent.Builder;
						}
						export class Event extends java.lang.Object /* com.google.android.gms.internal.firebase_messaging.zzx*/ {
							public static class: java.lang.Class<com.google.firebase.messaging.reporting.MessagingClientEvent.Event>;
							public static UNKNOWN_EVENT: com.google.firebase.messaging.reporting.MessagingClientEvent.Event;
							public static MESSAGE_DELIVERED: com.google.firebase.messaging.reporting.MessagingClientEvent.Event;
							public static MESSAGE_OPEN: com.google.firebase.messaging.reporting.MessagingClientEvent.Event;
							public static valueOf(param0: string): com.google.firebase.messaging.reporting.MessagingClientEvent.Event;
							public getNumber(): number;
							public static values(): native.Array<com.google.firebase.messaging.reporting.MessagingClientEvent.Event>;
						}
						export class MessageType extends java.lang.Object /* com.google.android.gms.internal.firebase_messaging.zzx*/ {
							public static class: java.lang.Class<com.google.firebase.messaging.reporting.MessagingClientEvent.MessageType>;
							public static UNKNOWN: com.google.firebase.messaging.reporting.MessagingClientEvent.MessageType;
							public static DATA_MESSAGE: com.google.firebase.messaging.reporting.MessagingClientEvent.MessageType;
							public static TOPIC: com.google.firebase.messaging.reporting.MessagingClientEvent.MessageType;
							public static DISPLAY_NOTIFICATION: com.google.firebase.messaging.reporting.MessagingClientEvent.MessageType;
							public static valueOf(param0: string): com.google.firebase.messaging.reporting.MessagingClientEvent.MessageType;
							public getNumber(): number;
							public static values(): native.Array<com.google.firebase.messaging.reporting.MessagingClientEvent.MessageType>;
						}
						export class SDKPlatform extends java.lang.Object /* com.google.android.gms.internal.firebase_messaging.zzx*/ {
							public static class: java.lang.Class<com.google.firebase.messaging.reporting.MessagingClientEvent.SDKPlatform>;
							public static UNKNOWN_OS: com.google.firebase.messaging.reporting.MessagingClientEvent.SDKPlatform;
							public static ANDROID: com.google.firebase.messaging.reporting.MessagingClientEvent.SDKPlatform;
							public static IOS: com.google.firebase.messaging.reporting.MessagingClientEvent.SDKPlatform;
							public static WEB: com.google.firebase.messaging.reporting.MessagingClientEvent.SDKPlatform;
							public getNumber(): number;
							public static valueOf(param0: string): com.google.firebase.messaging.reporting.MessagingClientEvent.SDKPlatform;
							public static values(): native.Array<com.google.firebase.messaging.reporting.MessagingClientEvent.SDKPlatform>;
						}
					}
				}
			}
		}
	}
}

declare module com {
	export module google {
		export module firebase {
			export module messaging {
				export module reporting {
					export class MessagingClientEventExtension {
						public static class: java.lang.Class<com.google.firebase.messaging.reporting.MessagingClientEventExtension>;
						public getMessagingClientEvent(): com.google.firebase.messaging.reporting.MessagingClientEvent;
						public getMessagingClientEventInternal(): com.google.firebase.messaging.reporting.MessagingClientEvent;
						public static newBuilder(): com.google.firebase.messaging.reporting.MessagingClientEventExtension.Builder;
						public toByteArray(): native.Array<number>;
						public static getDefaultInstance(): com.google.firebase.messaging.reporting.MessagingClientEventExtension;
						public writeTo(param0: java.io.OutputStream): void;
					}
					export module MessagingClientEventExtension {
						export class Builder {
							public static class: java.lang.Class<com.google.firebase.messaging.reporting.MessagingClientEventExtension.Builder>;
							public build(): com.google.firebase.messaging.reporting.MessagingClientEventExtension;
							public setMessagingClientEvent(param0: com.google.firebase.messaging.reporting.MessagingClientEvent): com.google.firebase.messaging.reporting.MessagingClientEventExtension.Builder;
						}
					}
				}
			}
		}
	}
}

//Generics information:

