import { ActorSubclass } from '@dfinity/agent'; import { Principal } from '@dfinity/principal'; import { Metadata } from '../../interfaces/token'; import { BurnResult } from '../../interfaces/xtc'; import { TxnResult } from '../../interfaces/drc_20'; import { Result } from '../../interfaces/dip_20'; import { BaseMethodsExtendedActor } from '../../utils/actorFactory'; interface TimeStamp { timestamp_nanos: bigint; } export interface SendOpts { fee?: bigint; memo?: string; from_subaccount?: number; to_subaccount?: Uint8Array | number[]; created_at_time?: TimeStamp; } export declare type SendResponse = { height: string; } | { amount: string; } | { transactionId: string; }; export interface SendParams { to: string; from: string; amount: bigint; opts?: any; } export interface BurnParams { to: Principal; amount: string; } export interface ApproveParams { spender: Principal; amount: bigint; nonce?: bigint; } export interface BalanceResponse { value: string; decimals: number; error?: string; } export declare type ApproveResponse = Result | TxnResult; interface AddedMehtodsToken { send: ({ to, from, amount }: SendParams) => Promise; getMetadata: () => Promise; getBalance: (user: Principal) => Promise; burnXTC: ({ to, amount }: BurnParams) => Promise; getDecimals: () => Promise; approve: ({ spender, amount, nonce, }: ApproveParams) => Promise; } export declare type TokenServiceExtended = BaseMethodsExtendedActor & AddedMehtodsToken; export interface InternalTokenMethods { send: (actor: ActorSubclass, { to, from, amount }: SendParams) => Promise; getMetadata: (actor: ActorSubclass) => Promise; getBalance: (actor: ActorSubclass, user: Principal) => Promise; burnXTC: (actor: ActorSubclass, { to, amount }: BurnParams) => Promise; getDecimals: (actor: ActorSubclass) => Promise; approve: (actor: ActorSubclass, { spender, amount, nonce }: ApproveParams) => Promise; } export declare const getDecimalsFromMetadata: (metadata: Metadata) => number; export declare const parseAmountToSend: (amount: string, decimals: number) => bigint; declare const _default: InternalTokenMethods; export default _default;