import * as z from 'zod'; export declare const AccountIdentifierSchema: z.ZodCustom, Uint8Array>; export declare const TokensSchema: z.ZodObject<{ e8s: z.ZodBigInt; }, z.core.$strict>; export declare const TimeStampSchema: z.ZodObject<{ timestamp_nanos: z.ZodBigInt; }, z.core.$strict>; export declare const SubAccountSchema: z.ZodCustom, Uint8Array>; export declare const TransferArgsSchema: z.ZodObject<{ to: z.ZodCustom, Uint8Array>; fee: z.ZodObject<{ e8s: z.ZodBigInt; }, z.core.$strict>; memo: z.ZodBigInt; from_subaccount: z.ZodOptional, Uint8Array>>; created_at_time: z.ZodOptional>; amount: z.ZodObject<{ e8s: z.ZodBigInt; }, z.core.$strict>; }, z.core.$strict>; export declare const TransferErrorSchema: z.ZodUnion; }, z.core.$strict>, z.ZodObject<{ BadFee: z.ZodObject<{ expected_fee: z.ZodObject<{ e8s: z.ZodBigInt; }, z.core.$strict>; }, z.core.$strict>; }, z.core.$strict>, z.ZodObject<{ TxDuplicate: z.ZodObject<{ duplicate_of: z.ZodBigInt; }, z.core.$strict>; }, z.core.$strict>, z.ZodObject<{ TxCreatedInFuture: z.ZodNull; }, z.core.$strict>, z.ZodObject<{ InsufficientFunds: z.ZodObject<{ balance: z.ZodObject<{ e8s: z.ZodBigInt; }, z.core.$strict>; }, z.core.$strict>; }, z.core.$strict>]>; export declare const TransferResultSchema: z.ZodUnion, z.ZodObject<{ Err: z.ZodUnion; }, z.core.$strict>, z.ZodObject<{ BadFee: z.ZodObject<{ expected_fee: z.ZodObject<{ e8s: z.ZodBigInt; }, z.core.$strict>; }, z.core.$strict>; }, z.core.$strict>, z.ZodObject<{ TxDuplicate: z.ZodObject<{ duplicate_of: z.ZodBigInt; }, z.core.$strict>; }, z.core.$strict>, z.ZodObject<{ TxCreatedInFuture: z.ZodNull; }, z.core.$strict>, z.ZodObject<{ InsufficientFunds: z.ZodObject<{ balance: z.ZodObject<{ e8s: z.ZodBigInt; }, z.core.$strict>; }, z.core.$strict>; }, z.core.$strict>]>; }, z.core.$strict>]>; /** * The destination account identifier. * A 32-byte array where the first 4 bytes are a CRC32 checksum of the last 28 bytes. */ export type AccountIdentifier = Uint8Array; /** * Amount of tokens, measured in 10^-8 of a token. */ export interface Tokens { e8s: bigint; } /** * A point in time, represented as nanoseconds since the Unix epoch. */ export interface TimeStamp { timestamp_nanos: bigint; } /** * Subaccount is an arbitrary 32-byte array used to compute the source address. */ export type SubAccount = Uint8Array; /** * Arguments for the ICP Ledger `transfer` call. */ export interface TransferArgs { /** The destination account identifier. */ to: AccountIdentifier; /** The transaction fee. Must be 10000 e8s. */ fee: Tokens; /** An arbitrary number associated with the transaction for correlation. */ memo: bigint; /** The subaccount to transfer from. Uses the default subaccount if not provided. */ from_subaccount?: SubAccount; /** The time at which the caller created this request. Uses current IC time if not provided. */ created_at_time?: TimeStamp; /** The amount to transfer to the destination address. */ amount: Tokens; } /** * Errors that can occur during an ICP Ledger transfer. */ export type TransferError = /** The request is too old. The ledger only accepts requests created within a 24-hour window. */ { TxTooOld: { allowed_window_nanos: bigint; }; } /** The fee specified in the transfer request does not match the expected fee. */ | { BadFee: { expected_fee: Tokens; }; } /** The ledger has already executed this request. */ | { TxDuplicate: { duplicate_of: bigint; }; } /** The specified `created_at_time` is too far in the future. */ | { TxCreatedInFuture: null; } /** The caller's account does not have enough funds. */ | { InsufficientFunds: { balance: Tokens; }; }; /** * The result of an ICP Ledger `transfer` call. * Returns the block index of the transaction on success. */ export type TransferResult = { Ok: bigint; } | { Err: TransferError; };