import { ethers } from "ethers";
import type { ContractNameType, ContractAddressAndAbiType } from "../../types";
import { LandId } from "../../config/constants";
export declare const getContractAddressAndAbiByContractName: (landId: LandId, signerOrProvider: ethers.Signer | ethers.providers.Provider, contractName: ContractNameType, widthABI?: boolean) => ContractAddressAndAbiType;
export declare const getContract: (signerOrProvider: ethers.Signer | ethers.providers.Provider, contractAddress: string, contractInterface: ethers.ContractInterface) => ethers.Contract;
export declare const getContractByContractName: (landId: LandId, signerOrProvider: ethers.Signer | ethers.providers.Provider, contractName: ContractNameType) => ethers.Contract;
export declare type ErrorCallbackType = (err: {
    error: unknown;
}) => void;
export declare type ResponseCallbackType = (response: {
    transactionHash: string;
}) => void;
export declare type SuccessCallbackType = (receipt: {
    transactionHash: string;
}) => void;
export declare type CallbackType = {
    errorCallback: ErrorCallbackType;
    responseCallback?: ResponseCallbackType;
    successCallback?: SuccessCallbackType;
};
export declare type TriggerOverrides = {
    gasPrice?: ethers.BigNumber;
    gasLimit?: ethers.BigNumber;
    value?: ethers.BigNumber;
    nonce?: number;
};
export declare const triggerContract: (contract: ethers.Contract, methodName: string, contractArgs?: unknown[], callback?: CallbackType, overrides?: TriggerOverrides | undefined) => Promise<ethers.providers.TransactionResponse>;
export declare const triggerContractByContractName: (landId: LandId, signerOrProvider: ethers.Signer | ethers.providers.Provider, contractName: ContractNameType, methodName: string, contractArgs?: unknown[], callback?: CallbackType, overrides?: TriggerOverrides | undefined) => Promise<ethers.providers.TransactionResponse>;
export declare const viewContract: (contract: ethers.Contract, methodName: string, contractArgs?: unknown[], callback?: CallbackType) => Promise<ethers.utils.Result>;
export declare const viewContractByContractName: (landId: LandId, signerOrProvider: ethers.Signer | ethers.providers.Provider, contractName: ContractNameType, methodName: string, contractArgs?: unknown[], callback?: CallbackType) => Promise<ethers.utils.Result>;
