import type { Prettify } from '../../helpers.js';
import type { MDSResponse } from '../../types.js';
import type { ArchiveAddressCheckParams, ArchiveExportParams, ArchiveImportParams, ArchiveInspectParams, ArchiveParams, ArchiveResyncParams, BackupParams, MegaMmrFileParams, MegaMmrParams, MegaMmrResyncParams, MegaMmrSyncParams, ResetChainsyncParams, ResetRestoreParams, ResetParams, ResetSeedsyncParams, RestoreParams, RestoreSyncParams, VaultParams, VaultPasswordLockParams, VaultPasswordUnlockParams, VaultRestoreKeysParams, VaultWipeKeysParams, ArchiveIntegrityParams, ArchiveExportRawParams, MegaMmrInfoParams, MegaMmrMyDetailsParams, VaultSeedParams } from './params.js';
import type { ArchiveReturnType, Backup, BackupResObj, MegaMmmrReturnType, MegaMmrSyncReturnType, ResetReturnType, Restore, VaultReturnType } from './response.js';
/**
* Archive function types
*/
export type ActionParamMap = {
readonly resync: ArchiveResyncParams;
readonly export: ArchiveExportParams;
readonly import: ArchiveImportParams;
readonly inspect: ArchiveInspectParams;
readonly addresscheck: ArchiveAddressCheckParams;
readonly integrity: ArchiveIntegrityParams;
readonly exportraw: ArchiveExportRawParams;
};
export type ArchiveCallback = (data: ArchiveReturnType) => void;
export type ArchiveParamType = A extends {
action: keyof ActionParamMap;
} ? ActionParamMap[A['action']] : A;
type ArchiveFuncParams = [
{
params: ArchiveParamType;
},
ArchiveCallback?
];
export type ArchiveFunc = (...args: ArchiveFuncParams) => Promise>;
/**
* Backup function types
*/
type BackupCallback = (data: Prettify>) => void;
export type BackupFunc = (args: {
params: BackupParams;
}, callback?: BackupCallback) => Promise>>;
/**
* MegaMmr function types
*/
export type ActionParamMapMegaMmr = {
readonly export: MegaMmrFileParams;
readonly info: MegaMmrInfoParams;
};
export type ActionParamTypeMegaMmr = A extends {
action: keyof ActionParamMapMegaMmr;
} ? ActionParamMapMegaMmr[A['action']] : A;
export type MegaMmrCallback = (data: MegaMmmrReturnType) => void;
type MegaMmrFuncParams = [
{
params: ActionParamTypeMegaMmr;
},
MegaMmrCallback?
];
export type MegaMmrFunc = (...args: MegaMmrFuncParams) => Promise>;
/**
* MegaMmrSync function types
*/
export type ActionParamMapMegaMmrSync = {
readonly resync: MegaMmrResyncParams;
readonly myDetails: MegaMmrMyDetailsParams;
};
type MegaMmrSyncCallback = (data: MegaMmrSyncReturnType) => void;
export type ActionParamTypeMegaMmrSync = A extends {
action: keyof ActionParamMapMegaMmrSync;
} ? ActionParamMapMegaMmrSync[A['action']] : A;
type MegaMmrSyncFuncParams = [
{
params: ActionParamTypeMegaMmrSync;
},
MegaMmrSyncCallback?
];
export type MegaMmrSyncFunc = (...args: MegaMmrSyncFuncParams) => Promise>;
/**
* Restore function types
*/
type RestoreCallback = (data: MDSResponse) => void;
export type RestoreFunc = (args: {
params: RestoreParams;
}, callback?: RestoreCallback) => Promise>;
export type RestoreSyncFunc = (args: {
params: RestoreSyncParams;
}, callback?: RestoreCallback) => Promise>;
/**
* Vault function types
*/
type VaultParamMap = {
readonly seed: VaultSeedParams;
readonly wipekeys: VaultWipeKeysParams;
readonly restorekeys: VaultRestoreKeysParams;
readonly passwordlock: VaultPasswordLockParams;
readonly passwordunlock: VaultPasswordUnlockParams;
};
type VaultCallback = (data: VaultReturnType) => void;
export type ActionParamTypeVault = A extends {
action: keyof VaultParamMap;
} ? VaultParamMap[A['action']] : A;
type VaultFuncParams = [
{
params: ActionParamTypeVault;
},
VaultCallback?
];
export type VaultFunc = (...args: VaultFuncParams) => Promise>;
/**
* Reset function types
*/
export type ActionParamMapReset = {
readonly chainsync: ResetChainsyncParams;
readonly seedsync: ResetSeedsyncParams;
readonly restore: ResetRestoreParams;
};
type ResetCallback = (data: ResetReturnType) => void;
export type ActionParamTypeReset = A extends {
action: keyof ActionParamMapReset;
} ? ActionParamMapReset[A['action']] : A;
type ResetFuncParams = [
{
params: ActionParamTypeReset;
},
ResetCallback?
];
export type ResetFunc = (...args: ResetFuncParams) => Promise>;
export {};
//# sourceMappingURL=functions.d.ts.map