@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
60 lines • 1.79 kB
TypeScript
import type { DeviceModelId } from "@ledgerhq/devices";
export type AnnouncementDeviceModelId = Array<DeviceModelId | "no_nano">;
import { DeviceModelInfo } from "@ledgerhq/types-live";
export type AnnouncementDeviceFilter = {
modelIds?: AnnouncementDeviceModelId;
versions?: string[];
apps?: string[];
};
export type AnnnouncementPlatformsFilter = "desktop" | "mobile" | "android" | "ios" | "mac" | "windows" | "linux";
type AnnouncementBase = {
uuid: string;
level?: string;
icon?: string;
priority?: number;
contextual?: string[];
published_at: string;
expired_at?: string;
utm_campaign?: string;
languages?: string[];
currencies?: string[];
device?: AnnouncementDeviceFilter;
platforms?: AnnnouncementPlatformsFilter[];
appVersions?: string[];
liveCommonVersions?: string[];
};
export type AnnouncementContent = {
title: string;
text: string | null | undefined;
link?: {
href: string;
label?: string;
} | null | undefined;
};
export type RawAnnouncement = AnnouncementBase & {
content: Record<string, AnnouncementContent>;
};
export type Announcement = AnnouncementBase & {
content: AnnouncementContent;
};
export type AnnouncementsUserSettings = {
language: string;
currencies: string[];
getDate: () => Date;
lastSeenDevice?: DeviceModelInfo | null;
platform?: string;
appVersion?: string;
};
export type AnnouncementsApi = {
fetchAnnouncements: () => Promise<RawAnnouncement[]>;
};
export type State = {
seenIds: string[];
allIds: string[];
cache: Record<string, Announcement>;
isLoading: boolean;
lastUpdateTime: number | null | undefined;
error: Error | null | undefined;
};
export {};
//# sourceMappingURL=types.d.ts.map