type BytesDto = string | number[]; export type ClientPath = string | Iterable | ArrayLike | ArrayBuffer; export type VaultPath = string | Iterable | ArrayLike | ArrayBuffer; export type RecordPath = string | Iterable | ArrayLike | ArrayBuffer; export type StoreKey = string | Iterable | ArrayLike | ArrayBuffer; export interface ConnectionLimits { maxPendingIncoming?: number; maxPendingOutgoing?: number; maxEstablishedIncoming?: number; maxEstablishedOutgoing?: number; maxEstablishedPerPeer?: number; maxEstablishedTotal?: number; } export interface PeerAddress { known: string[]; use_relay_fallback: boolean; } export interface AddressInfo { peers: Map; relays: string[]; } export interface ClientAccess { useVaultDefault?: boolean; useVaultExceptions?: Map; writeVaultDefault?: boolean; writeVaultExceptions?: Map; cloneVaultDefault?: boolean; cloneVaultExceptions?: Map; readStore?: boolean; writeStore?: boolean; } export interface Permissions { default?: ClientAccess; exceptions?: Map; } export interface NetworkConfig { requestTimeout?: Duration; connectionTimeout?: Duration; connectionsLimit?: ConnectionLimits; enableMdns?: boolean; enableRelay?: boolean; addresses?: AddressInfo; peerPermissions?: Map; permissionsDefault?: Permissions; } export interface Duration { millis: number; nanos: number; } export declare class Location { type: string; payload: Record; constructor(type: string, payload: Record); static generic(vault: VaultPath, record: RecordPath): Location; static counter(vault: VaultPath, counter: number): Location; } declare class ProcedureExecutor { procedureArgs: Record; constructor(procedureArgs: Record); generateSLIP10Seed(outputLocation: Location, sizeBytes?: number): Promise; deriveSLIP10(chain: number[], source: "Seed" | "Key", sourceLocation: Location, outputLocation: Location): Promise; recoverBIP39(mnemonic: string, outputLocation: Location, passphrase?: string): Promise; generateBIP39(outputLocation: Location, passphrase?: string): Promise; getEd25519PublicKey(privateKeyLocation: Location): Promise; signEd25519(privateKeyLocation: Location, msg: string): Promise; } export declare class Client { path: string; name: BytesDto; constructor(path: string, name: ClientPath); getVault(name: VaultPath): Vault; getStore(): Store; } export declare class Store { path: string; client: BytesDto; constructor(path: string, client: BytesDto); get(key: StoreKey): Promise; insert(key: StoreKey, value: number[], lifetime?: Duration): Promise; remove(key: StoreKey): Promise; } export declare class Vault extends ProcedureExecutor { path: string; client: BytesDto; name: BytesDto; constructor(path: string, client: ClientPath, name: VaultPath); insert(recordPath: RecordPath, secret: number[]): Promise; remove(location: Location): Promise; } export declare class Stronghold { path: string; constructor(path: string, password: string); private reload; unload(): Promise; loadClient(client: ClientPath): Promise; createClient(client: ClientPath): Promise; save(): Promise; } export {};