///
import { IRequestTracer } from '../../api';
import { KeyPair, KeychainsTriplet } from '../baseCoin';
import { IWallet } from '../wallet';
export declare type KeyType = 'tss' | 'independent' | 'blsdkg';
export interface Keychain {
id: string;
pub: string;
prv?: string;
provider?: string;
encryptedPrv?: string;
derivationPath?: string;
derivedFromParentWithSeed?: string;
commonPub?: string;
commonKeychain?: string;
keyShares?: KeyShare[];
}
export interface ChangedKeychains {
[pubkey: string]: string;
}
export interface ListKeychainsResult {
keys: Keychain[];
nextBatchPrevId?: string;
}
export interface GetKeychainOptions {
id: string;
xpub?: string;
ethAddress?: string;
reqId?: IRequestTracer;
}
export interface ListKeychainOptions {
limit?: number;
prevId?: string;
}
export interface UpdatePasswordOptions {
oldPassword: string;
newPassword: string;
}
export interface UpdateSingleKeychainPasswordOptions {
keychain?: Keychain;
oldPassword?: string;
newPassword?: string;
}
export interface AddKeychainOptions {
pub?: string;
commonPub?: string;
commonKeychain?: string;
encryptedPrv?: string;
type?: string;
keyType?: KeyType;
source?: string;
originalPasscodeEncryptionCode?: string;
enterprise?: string;
derivedFromParentWithSeed?: any;
disableKRSEmail?: boolean;
provider?: string;
reqId?: IRequestTracer;
krsSpecific?: any;
keyShares?: KeyShare[];
userGPGPublicKey?: string;
backupGPGPublicKey?: string;
}
interface KeyShare {
from: string;
to: string;
publicShare: string;
privateShare: string;
n?: string;
}
export interface CreateBackupOptions {
provider?: string;
source?: string;
disableKRSEmail?: boolean;
krsSpecific?: any;
type?: string;
keyType?: KeyType;
reqId?: IRequestTracer;
commonPub?: string;
commonKeychain?: string;
prv?: string;
encryptedPrv?: string;
}
export interface CreateBitGoOptions {
source?: 'bitgo';
enterprise?: string;
reqId?: IRequestTracer;
keyType?: KeyType;
}
export interface CreateMpcOptions {
multisigType: 'onchain' | 'tss' | 'blsdkg';
passphrase?: string;
originalPasscodeEncryptionCode?: string;
enterprise?: string;
}
export interface GetKeysForSigningOptions {
reqId?: IRequestTracer;
wallet?: IWallet;
}
export declare enum KeyIndices {
USER = 0,
BACKUP = 1,
BITGO = 2
}
export interface IKeychains {
get(params: GetKeychainOptions): Promise;
list(params?: ListKeychainOptions): Promise;
updatePassword(params: UpdatePasswordOptions): Promise;
updateSingleKeychainPassword(params?: UpdateSingleKeychainPasswordOptions): Keychain;
create(params?: {
seed?: Buffer;
}): KeyPair;
add(params?: AddKeychainOptions): Promise;
createBitGo(params?: CreateBitGoOptions): Promise;
createBackup(params?: CreateBackupOptions): Promise;
getKeysForSigning(params?: GetKeysForSigningOptions): Promise;
createMpc(params: CreateMpcOptions): Promise;
}
export {};
//# sourceMappingURL=iKeychains.d.ts.map