@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
88 lines • 2.42 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { Observable } from "rxjs";
import type Transport from "@ledgerhq/hw-transport";
import { type DerivationMode, DeviceInfo, FirmwareUpdateContext } from "@ledgerhq/types-live";
import type { AppOp, SkippedAppOp } from "../apps/types";
import { LockedDeviceEvent } from "./actions/types";
export type RequiresDerivation = {
currencyId: string;
path: string;
derivationMode: DerivationMode;
forceFormat?: string;
};
export type Input = {
deviceId: string;
request: ConnectAppRequest;
};
export type ConnectAppRequest = {
appName: string;
requiresDerivation?: RequiresDerivation;
dependencies?: string[];
requireLatestFirmware?: boolean;
outdatedApp?: AppAndVersion;
allowPartialDependencies: boolean;
};
export type AppAndVersion = {
name: string;
version: string;
flags: number | Buffer;
};
export type ConnectAppEvent = {
type: "unresponsiveDevice";
} | {
type: "disconnected";
expected?: boolean;
} | {
type: "device-update-last-seen";
deviceInfo: DeviceInfo;
latestFirmware: FirmwareUpdateContext | null | undefined;
} | {
type: "device-permission-requested";
} | {
type: "device-permission-granted";
} | {
type: "app-not-installed";
appNames: string[];
appName: string;
} | {
type: "inline-install";
progress: number;
itemProgress: number;
currentAppOp: AppOp;
installQueue: string[];
} | {
type: "some-apps-skipped";
skippedAppOps: SkippedAppOp[];
} | {
type: "listing-apps";
} | {
type: "listed-apps";
installQueue: string[];
} | {
type: "dependencies-resolved";
} | {
type: "latest-firmware-resolved";
} | {
type: "ask-quit-app";
} | {
type: "ask-open-app";
appName: string;
} | {
type: "has-outdated-app";
outdatedApp: AppAndVersion;
} | {
type: "opened";
app?: AppAndVersion;
derivation?: {
address: string;
};
} | {
type: "display-upgrade-warning";
displayUpgradeWarning: boolean;
} | LockedDeviceEvent;
export declare const openAppFromDashboard: (transport: Transport, appName: string) => Observable<ConnectAppEvent>;
export default function connectAppFactory({ isLdmkConnectAppEnabled, }?: {
isLdmkConnectAppEnabled: boolean;
}): ({ deviceId, request }: Input) => Observable<ConnectAppEvent>;
//# sourceMappingURL=connectApp.d.ts.map