// SPDX-FileCopyrightText: © 2026 LEDGER SAS
// SPDX-License-Identifier: Apache-2.0

import type { FeeEstimation } from '@ledgerhq/coin-module-framework/api/types'

export type TezosFeeParameters = {
  gasLimit: bigint
  storageLimit: bigint
  amount?: bigint
  txFee?: bigint
}
export type TezosFeeEstimation = FeeEstimation & {
  parameters?: TezosFeeParameters & Record<string, unknown>
}

export type TezosSender = { address: string; xpub?: string }

/**
 * Network-specific account metadata for Tezos (ADR-045 shape).
 * `revealed` is `true` once the account has published its public key on-chain.
 *
 * Concrete return type of the module's `getAccountInfo`. The framework's generic
 * `CoinModuleApi.getAccountInfo` (added by ADR-045 / LIVE-33431) widens to the open
 * `AccountInfo` shape; this alias keeps the reveal state strongly typed at the implementation.
 */
export type TezosAccountInfo = { type: 'tezos'; revealed: boolean }
