@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
139 lines • 4.46 kB
TypeScript
import { type AppStorageInfo } from "@ledgerhq/device-core";
import { DeviceModelId } from "@ledgerhq/devices";
/**
* The interface for the storage provider used to store the application data, should be implemented in a platform-specific context.
*/
export interface StorageProvider<VType> {
getItem(key: string): Promise<VType | null>;
setItem(key: string, value: VType): Promise<void>;
removeItem(key: string): Promise<void>;
}
export type AppName = string;
/**
* The key used to store the application data in the device storage, is a combination of the device model ID and the application name.
*/
export type AppStorageKey = `${Exclude<DeviceModelId, DeviceModelId.blue | DeviceModelId.nanoS>}-${AppName}`;
export type AppStorageType = {
appDataInfo: AppStorageInfo;
appData: string;
};
export declare function isAppStorageType(data: AppStorageType | unknown): data is AppStorageType;
export declare enum BackupAppDataEventType {
/**
* The progress of the ongoing backup process.
*/
Progress = "progress",
/**
* The application data information has been fetched.
*/
AppDataInfoFetched = "appDataInfoFetched",
/**
* The application data has been backed up.
*/
AppDataBackedUp = "appDataBackedUp",
/**
* The application data has already been backed up, no need to backup again.
*/
AppDataAlreadyBackedUp = "appDataAlreadyBackedUp",
/**
* There is no application data to backup.
*/
NoAppDataToBackup = "noAppDataToBackup"
}
export type BackupAppDataEvent = {
type: BackupAppDataEventType.Progress;
/**
* The progress of the backup process as a number between 0 and 1.
*/
data: number;
} | {
type: BackupAppDataEventType.AppDataInfoFetched;
/**
* The application data information.
*/
data: AppStorageInfo;
} | {
type: BackupAppDataEventType.AppDataBackedUp;
/**
* The base64 encoded application data or an empty string.
*/
data: string;
} | {
type: BackupAppDataEventType.AppDataAlreadyBackedUp;
} | {
type: BackupAppDataEventType.NoAppDataToBackup;
};
/**
* An error that occurs during the backup process, the error message should be descriptive when thrown.
*/
export declare const BackupAppDataError: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
[key: string]: unknown;
}>;
export declare enum RestoreAppDataEventType {
/**
* The progress of the ongoing restoring process.
*/
Progress = "progress",
/**
* The application data is initialized for the restore process.
*/
AppDataInitialized = "appDataInitialized",
/**
* The application data has been restored.
*/
AppDataRestored = "appDataRestored",
/**
* There is no application data to restore.
*/
NoAppDataToRestore = "noAppDataToRestore",
/**
* The user refused to restore the application data.
*/
UserRefused = "userRefused"
}
export type RestoreAppDataEvent = {
type: RestoreAppDataEventType.Progress;
/**
* The progress of the restore process as a number between 0 and 1.
*/
data: number;
} | {
type: RestoreAppDataEventType.AppDataInitialized;
} | {
type: RestoreAppDataEventType.AppDataRestored;
} | {
type: RestoreAppDataEventType.NoAppDataToRestore;
} | {
type: RestoreAppDataEventType.UserRefused;
};
/**
* An error that occurs during the restore process, the error message should be descriptive when thrown.
*/
export declare const RestoreAppDataError: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
[key: string]: unknown;
}>;
export declare enum DeleteAppDataEventType {
AppDataDeleteStarted = "appDataDeleteStarted",
/**
* The application data has been deleted.
*/
AppDataDeleted = "appDataDeleted",
/**
* There is no application data to delete.
*/
NoAppDataToDelete = "noAppDataToDelete"
}
export type DeleteAppDataEvent = {
type: DeleteAppDataEventType.AppDataDeleteStarted;
} | {
type: DeleteAppDataEventType.AppDataDeleted;
} | {
type: DeleteAppDataEventType.NoAppDataToDelete;
};
/**
* An error that occurs during the delete process (local data), the error message should be descriptive when thrown.
*/
export declare const DeleteAppDataError: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
[key: string]: unknown;
}>;
//# sourceMappingURL=types.d.ts.map