/// import { SaplingPartialOutputDescription, SaplingUnsignedSpendDescription } from '@airgap/sapling-wasm'; import { ProtocolOptions } from '../../../utils/ProtocolOptions'; import { ProtocolSymbols } from '../../../utils/ProtocolSymbols'; import { CurrencyUnit, FeeDefaults } from '../../ICoinProtocol'; import { TezosProtocolConfig, TezosProtocolNetwork } from '../TezosProtocolOptions'; import { TezosSaplingTransaction } from '../types/sapling/TezosSaplingTransaction'; export interface TezosSaplingExternalMethodProvider { initParameters?: (spendParams: Buffer, outputParams: Buffer) => Promise; withProvingContext?: (action: (context: number) => Promise) => Promise; prepareSpendDescription?: (context: number, spendingKey: Buffer, address: Buffer, rcm: string, ar: Buffer, value: string, root: string, merklePath: string) => Promise; preparePartialOutputDescription?: (context: number, address: Buffer, rcm: Buffer, esk: Buffer, value: string) => Promise; createBindingSignature?: (context: number, balance: string, sighash: Buffer) => Promise; } export declare class TezosSaplingProtocolConfig extends TezosProtocolConfig { readonly name: string; readonly identifier: ProtocolSymbols; readonly contractAddress: string; readonly memoSize: number; readonly merkleTreeHeight: number; readonly symbol?: string | undefined; readonly marketSymbol?: string | undefined; readonly feeDefaults?: FeeDefaults | undefined; readonly decimals?: number | undefined; readonly units?: CurrencyUnit[] | undefined; readonly externalProvider?: TezosSaplingExternalMethodProvider | undefined; constructor(name: string, identifier: ProtocolSymbols, contractAddress: string, memoSize: number, merkleTreeHeight?: number, symbol?: string | undefined, marketSymbol?: string | undefined, feeDefaults?: FeeDefaults | undefined, decimals?: number | undefined, units?: CurrencyUnit[] | undefined, externalProvider?: TezosSaplingExternalMethodProvider | undefined); } export declare class TezosShieldedTezProtocolConfig extends TezosSaplingProtocolConfig { readonly name: string; readonly identifier: ProtocolSymbols; readonly contractAddress: string; readonly externalProvider?: TezosSaplingExternalMethodProvider | undefined; readonly memoSize: number; readonly merkleTreeHeight: number; constructor(name?: string, identifier?: ProtocolSymbols, contractAddress?: string, externalProvider?: TezosSaplingExternalMethodProvider | undefined, memoSize?: number, merkleTreeHeight?: number); } export declare class TezosSaplingProtocolOptions implements ProtocolOptions { network: TezosProtocolNetwork; config: TezosSaplingProtocolConfig; constructor(network?: TezosProtocolNetwork, config?: TezosSaplingProtocolConfig); }