import type { HybridObject } from 'react-native-nitro-modules';
export interface BundleDownloadParams {
    downloadUrl: string;
    latestVersion: string;
    bundleVersion: string;
    fileSize: number;
    sha256: string;
}
export interface BundleDownloadResult {
    downloadedFile: string;
    downloadUrl: string;
    latestVersion: string;
    bundleVersion: string;
    sha256: string;
}
export interface BundleVerifyParams {
    downloadedFile: string;
    sha256: string;
    latestVersion: string;
    bundleVersion: string;
}
export interface BundleVerifyASCParams {
    downloadedFile: string;
    sha256: string;
    latestVersion: string;
    bundleVersion: string;
    signature: string;
}
export interface BundleDownloadASCParams {
    downloadUrl: string;
    downloadedFile: string;
    signature: string;
    latestVersion: string;
    bundleVersion: string;
    sha256: string;
}
export interface BundleInstallParams {
    downloadedFile: string;
    latestVersion: string;
    bundleVersion: string;
    signature: string;
}
export interface BundleSwitchParams {
    appVersion: string;
    bundleVersion: string;
    signature: string;
}
export interface BundleDownloadEvent {
    type: string;
    progress: number;
    message: string;
}
export interface TestResult {
    success: boolean;
    message: string;
}
export interface LocalBundleInfo {
    appVersion: string;
    bundleVersion: string;
}
export interface FallbackBundleInfo {
    appVersion: string;
    bundleVersion: string;
    signature: string;
}
export interface AscFileInfo {
    fileName: string;
    filePath: string;
    fileSize: number;
}
export interface ReactNativeBundleUpdate extends HybridObject<{
    ios: 'swift';
    android: 'kotlin';
}> {
    downloadBundle(params: BundleDownloadParams): Promise<BundleDownloadResult>;
    verifyBundle(params: BundleVerifyParams): Promise<void>;
    verifyBundleASC(params: BundleVerifyASCParams): Promise<void>;
    downloadBundleASC(params: BundleDownloadASCParams): Promise<void>;
    installBundle(params: BundleInstallParams): Promise<void>;
    clearDownload(): Promise<void>;
    clearBundle(): Promise<void>;
    clearAllJSBundleData(): Promise<TestResult>;
    resetToBuiltInBundle(): Promise<void>;
    getFallbackUpdateBundleData(): Promise<FallbackBundleInfo[]>;
    setCurrentUpdateBundleData(params: BundleSwitchParams): Promise<void>;
    getWebEmbedPath(): string;
    getWebEmbedPathAsync(): Promise<string>;
    getJsBundlePath(): string;
    getJsBundlePathAsync(): Promise<string>;
    getBackgroundJsBundlePath(): string;
    getBackgroundJsBundlePathAsync(): Promise<string>;
    getNativeAppVersion(): Promise<string>;
    getNativeBuildNumber(): Promise<string>;
    getBuiltinBundleVersion(): Promise<string>;
    testVerification(): Promise<boolean>;
    testSkipVerification(): Promise<boolean>;
    isSkipGpgVerificationAllowed(): boolean;
    isBundleExists(appVersion: string, bundleVersion: string): Promise<boolean>;
    verifyExtractedBundle(appVersion: string, bundleVersion: string): Promise<void>;
    listLocalBundles(): Promise<LocalBundleInfo[]>;
    listAscFiles(): Promise<AscFileInfo[]>;
    getSha256FromFilePath(filePath: string): Promise<string>;
    testDeleteJsBundle(appVersion: string, bundleVersion: string): Promise<TestResult>;
    testDeleteJsRuntimeDir(appVersion: string, bundleVersion: string): Promise<TestResult>;
    testDeleteMetadataJson(appVersion: string, bundleVersion: string): Promise<TestResult>;
    testWriteEmptyMetadataJson(appVersion: string, bundleVersion: string): Promise<TestResult>;
    addDownloadListener(callback: (event: BundleDownloadEvent) => void): number;
    removeDownloadListener(id: number): void;
}
//# sourceMappingURL=ReactNativeBundleUpdate.nitro.d.ts.map