import type { Hash } from '@ariestools/sdk';
import type { XyoAddress } from '@xyo-network/sdk';
import type { AttoXL1, TransactionOptions, XyoGatewayRunner } from '@xyo-network/xl1-protocol/protocol-lib';
/**
 * Example: transfer XL1 from the runner's signer account to a recipient.
 *
 * The runner must be write-capable and constructed with a funded signer, e.g.:
 * `getRestGatewayRunner({ endpoint, rpcUrl, signer })` or
 * `GatewayBuilder.build(signer)`.
 *
 * Under the hood this calls `runner.send`, which builds a `network.xyo.transfer`
 * payload, signs it with the runner's signer, and broadcasts it to the network
 * mempool over the runner's RPC endpoint.
 *
 * @returns Transaction hash. Call `runner.confirmSubmittedTransaction(txHash)`
 * to wait until the transaction is included in a block.
 *
 * @example
 * ```ts
 * import { asAttoXL1 } from '@xyo-network/xl1-protocol/protocol-lib'
 * import { getRestGatewayRunner, transferXl1 } from '@xyo-network/xl1-sdk'
 *
 * const runner = await getRestGatewayRunner({
 *   endpoint: 'https://sample.mainnet.xyo.space',
 *   rpcUrl: 'https://sample.mainnet.xyo.space/rpc',
 *   signer,
 * })
 *
 * // 1 XL1 = 10^18 atto
 * const amount = asAttoXL1(1_000_000_000_000_000_000n)
 * const txHash = await transferXl1(runner, recipient, amount)
 * await runner.confirmSubmittedTransaction(txHash)
 * ```
 *
 * @example
 * ```ts
 * // Multiple recipients — use sendMany directly
 * await runner.sendMany({
 *   [recipientA]: asAttoXL1(1_000n),
 *   [recipientB]: asAttoXL1(2_000n),
 * })
 * ```
 *
 * Full live-chain recipe (HD wallet, S3 reads, RPC mempool) lives in the xyo-chain
 * `api-local-s3` e2e project: `src/e2e/spec/api-local-s3/RestGatewayRunner.spec.ts`.
 */
export declare function transferXl1(runner: XyoGatewayRunner, to: XyoAddress, amount: AttoXL1, options?: TransactionOptions): Promise<Hash>;
//# sourceMappingURL=transferXl1.d.ts.map