/**
 * Generalized Account module - routines to use generalized account
 */
import { Int, Tag } from '../tx/builder/constants.js';
import { BuildTxOptions } from '../tx/builder/index.js';
import { Encoded } from '../utils/encoder.js';
import Contract from './Contract.js';
import Node from '../Node.js';
import { SendTransactionOptions } from '../send-transaction.js';
import CompilerBase from './compiler/Base.js';
/**
 * Convert current account to GA
 * @category account generalized
 * @param authFnName - Authorization function name
 * @param args - init arguments
 * @param options - Options
 * @returns General Account Object
 */
export declare function createGeneralizedAccount(authFnName: string, args: any[], { onAccount, onCompiler, onNode, bytecode, aci, sourceCodePath, sourceCode, fileSystem, ...options }: CreateGeneralizedAccountOptions): Promise<Readonly<{
    owner: Encoded.AccountAddress;
    transaction: Encoded.TxHash;
    rawTx: Encoded.Transaction;
    gaContractId: Encoded.ContractAddress;
}>>;
interface CreateGeneralizedAccountOptions extends BuildTxOptions<Tag.GaAttachTx, 'authFun' | 'callData' | 'code' | 'ownerId' | 'gasLimit' | 'onNode'>, SendTransactionOptions, Pick<Parameters<typeof Contract.initialize>[0], 'bytecode' | 'aci' | 'sourceCodePath' | 'sourceCode' | 'fileSystem'> {
    onCompiler: CompilerBase;
    gasLimit?: number;
}
/**
 * Build a transaction hash the same as `Auth.tx_hash` by GaMetaTx payload
 * @category account generalized
 * @param transaction - tx-encoded transaction
 * @param options - Options
 * @param options.fee - GaMetaTx fee, required in Ceres
 * @param options.gasPrice - GaMetaTx gasPrice, required in Ceres
 * @param options.onNode - Node to use
 * @returns Transaction hash
 */
export declare function buildAuthTxHash(transaction: Encoded.Transaction, { fee, gasPrice, onNode }: {
    fee?: Int;
    gasPrice?: Int;
    onNode: Node;
}): Promise<Buffer>;
/**
 * Build a transaction hash the same as `Auth.tx_hash` by GaMetaTx
 * @category account generalized
 * @param transaction - tx-encoded signed GaMeta transaction
 * @param options - Options
 * @param options.onNode - Node to use
 * @returns Transaction hash
 */
export declare function buildAuthTxHashByGaMetaTx(transaction: Encoded.Transaction, { onNode }: {
    onNode: Node;
}): Promise<Buffer>;
export {};
