import type { AccountGroupId, AccountGroupType, AccountWalletId, AccountWalletType } from "@metamask/account-api"; import type { TraceCallback } from "@metamask/controller-utils"; import type { InternalAccount } from "@metamask/keyring-internal-api"; import type { Infer, Struct } from "@metamask/superstruct"; import type { AccountTreeController } from "../AccountTreeController.mjs"; import type { AccountGroupMultichainAccountObject, AccountTreeGroupPersistedMetadata } from "../group.mjs"; import type { RuleResult } from "../rule.mjs"; import type { AccountTreeControllerMessenger } from "../types.mjs"; import type { AccountTreeWalletPersistedMetadata } from "../wallet.mjs"; import type { BackupAndSyncEmitAnalyticsEventParams } from "./analytics/index.mjs"; /** * Superstruct schema for UserStorageSyncedWallet validation. */ export declare const UserStorageSyncedWalletSchema: Struct<{ name?: { value: string; lastUpdatedAt: number; } | undefined; isLegacyAccountSyncingDisabled?: boolean | undefined; }, { name: Struct<{ value: string; lastUpdatedAt: number; } | undefined, { value: Struct; lastUpdatedAt: Struct; }>; isLegacyAccountSyncingDisabled: Struct; }>; /** * Superstruct schema for UserStorageSyncedWalletGroup validation. */ export declare const UserStorageSyncedWalletGroupSchema: Struct<{ groupIndex: number; name?: { value: string; lastUpdatedAt: number; } | undefined; pinned?: { value: boolean; lastUpdatedAt: number; } | undefined; hidden?: { value: boolean; lastUpdatedAt: number; } | undefined; }, { name: Struct<{ value: string; lastUpdatedAt: number; } | undefined, { value: Struct; lastUpdatedAt: Struct; }>; pinned: Struct<{ value: boolean; lastUpdatedAt: number; } | undefined, { value: Struct; lastUpdatedAt: Struct; }>; hidden: Struct<{ value: boolean; lastUpdatedAt: number; } | undefined, { value: Struct; lastUpdatedAt: Struct; }>; groupIndex: Struct; }>; /** * Superstruct schema for LegacyUserStorageSyncedAccount validation. */ export declare const LegacyUserStorageSyncedAccountSchema: Struct<{ v?: string | undefined; i?: string | undefined; a?: string | undefined; n?: string | undefined; nlu?: number | undefined; }, { v: Struct; i: Struct; a: Struct; n: Struct; nlu: Struct; }>; export type UserStorageSyncedWallet = AccountTreeWalletPersistedMetadata & Infer; export type UserStorageSyncedWalletGroup = AccountTreeGroupPersistedMetadata & { groupIndex: AccountGroupMultichainAccountObject['metadata']['entropy']['groupIndex']; } & Infer; export type LegacyUserStorageSyncedAccount = Infer; export type BackupAndSyncContext = { messenger: AccountTreeControllerMessenger; controller: AccountTreeController; controllerStateUpdateFn: AccountTreeController['update']; traceFn: TraceCallback; groupIdToWalletId: Map; emitAnalyticsEventFn: (event: BackupAndSyncEmitAnalyticsEventParams) => void; }; export type LegacyAccountSyncingContext = { listAccounts: () => InternalAccount[]; getEntropyRule: () => { match: (account: InternalAccount) => RuleResult | undefined; }; }; export type AtomicSyncEvent = { execute: () => Promise; }; //# sourceMappingURL=types.d.mts.map