import { Signer as Signer$1, ContractTransactionResponse } from 'ethersV6'; import { Signer, ContractTransaction } from 'ethers'; import { CommandOptions } from './types.js'; import '../utils/supportedChains/index.js'; import '../utils/gasStation/index.js'; import '../utils/network/index.js'; import '../token-registry-functions/types.js'; /** * Grants a role to an account on the DocumentStore contract. * Supports both Ethers v5 and v6 signers. * Supports three types of document stores: * 1. DocumentStore (ERC-165 compliant) * 2. TransferableDocumentStore (ERC-165 compliant) * 3. TT Document Store (legacy, no ERC-165 support - used as fallback) * @param {string} documentStoreAddress - The address of the DocumentStore contract. * @param {string} role - The role to grant (e.g., 'ISSUER', 'REVOKER', 'ADMIN'). * @param {string} account - The account to grant the role to. * @param {SignerV5 | SignerV6} signer - Signer instance (Ethers v5 or v6) that authorizes the grant role transaction. * @param {CommandOptions} options - Optional transaction metadata including gas values and chain ID. * @returns {Promise} A promise resolving to the transaction result from the grant role call. * @throws {Error} If the document store address or signer provider is not provided. * @throws {Error} If the role is invalid. * @throws {Error} If the `callStatic.grantRole` fails as a pre-check. */ declare const documentStoreGrantRole: (documentStoreAddress: string, role: string, account: string, signer: Signer | Signer$1, options?: CommandOptions) => Promise; export { documentStoreGrantRole };