import { type TurboModule } from 'react-native'; import type { InstallMode } from '../enums/InstallMode.enum'; import type { UpdateState } from '../enums/UpdateState.enum'; import type { LocalPackage, RemotePackage, StatusReport } from '../types'; import type { Configuration, LatestRollbackInfo, OmitFunctions } from './types'; export interface Spec extends TurboModule { addListener: (eventName: string) => void; removeListeners: (count: number) => void; getConstants(): { codePushInstallModeImmediate: number; codePushInstallModeOnNextRestart: number; codePushInstallModeOnNextResume: number; codePushInstallModeOnNextSuspend: number; codePushUpdateStateLatest: number; codePushUpdateStatePending: number; codePushUpdateStateRunning: number; }; getConfiguration(): Promise; resetClientUniqueId(): Promise; getUpdateMetadata(updateState: UpdateState): Promise>; installUpdate( localPackage: OmitFunctions, installMode: InstallMode, minimumBackgroundDuration: number, ): Promise; downloadUpdate( remotePackage: OmitFunctions, notifyProgress: boolean, ): Promise>; restartApp(onlyIfUpdateIsPending: boolean): Promise; clearPendingRestart(): Promise; disallow(): Promise; allow(): Promise; clearUpdates(): void; notifyApplicationReady(): Promise; setLatestRollbackInfo(packageHash: string): Promise; getNewStatusReport(): Promise; recordStatusReported(statusReport: StatusReport): void; saveStatusReportForRetry(statusReport: StatusReport): void; getLatestRollbackInfo(): Promise; isFirstRun(packageHash: string): Promise; isFailedUpdate(packageHash: string): Promise; setTelemetryEnabled(enabled: boolean): Promise; getTelemetryEnabled(): Promise; setDataTransmissionEnabled(enabled: boolean): Promise; getDataTransmissionEnabled(): Promise; reportDeploymentFailure(errorCode: string, errorMessage: string, failedPhase: string): Promise; }