import { Config, ResolvedRegister } from "@wagmi/core";
import { Abi, ContractFunctionArgs, ContractFunctionName, Hex, WriteContractErrorType } from "viem";
import { UseMutationParameters, UseMutationReturnType, WriteContractData, WriteContractMutate, WriteContractMutateAsync, WriteContractVariables } from "wagmi/query";
type WriteFacetContractVariables<abi extends Abi | readonly unknown[], functionName extends ContractFunctionName<abi, "nonpayable" | "payable">, args extends ContractFunctionArgs<abi, "nonpayable" | "payable", functionName>, config extends Config, chainId extends config["chains"][number]["id"]> = WriteContractVariables<abi, functionName, args, config, chainId> & {
    mineBoost?: Hex;
};
type ConfigParameter<config extends Config = Config> = {
    config?: Config | config | undefined;
};
type UseWriteFacetContractParameters<config extends Config = Config, context = unknown> = ConfigParameter<config> & {
    mutation?: UseMutationParameters<WriteContractData, WriteContractErrorType, WriteFacetContractVariables<Abi, string, readonly unknown[], config, config["chains"][number]["id"]>, context> | undefined;
};
type UseWriteFacetContractReturnType<config extends Config = Config, context = unknown> = UseMutationReturnType<WriteContractData, WriteContractErrorType, WriteFacetContractVariables<Abi, string, readonly unknown[], config, config["chains"][number]["id"]>, context> & {
    writeFacetContract: WriteContractMutate<config, context>;
    writeFacetContractAsync: WriteContractMutateAsync<config, context>;
};
/**
 * React hook that provides functionality to write to a Facet contract.
 *
 * @template config - The wagmi Config type, defaults to ResolvedRegister["config"]
 * @template context - The context type for the mutation, defaults to unknown
 *
 * @param {UseWriteFacetContractParameters<config, context>} parameters - Configuration options
 * @param {Config | config | undefined} [parameters.config] - Optional wagmi configuration
 * @param {UseMutationParameters} [parameters.mutation] - Optional react-query mutation parameters
 *
 * @returns {UseWriteFacetContractReturnType<config, context>} Object containing:
 *   - writeFacetContract: Function to execute the contract write (non-async)
 *   - writeFacetContractAsync: Function to execute the contract write (async)
 *   - Additional react-query mutation properties (isLoading, isSuccess, etc.)
 */
export declare function useWriteFacetContract<config extends Config = ResolvedRegister["config"], context = unknown>(parameters?: UseWriteFacetContractParameters<config, context>): UseWriteFacetContractReturnType<config, context>;
export {};
