import { ContractLogType, ContractFileType, Pagination, TxMisc } from './firmachain/contract';
import { EncodeObject } from '@cosmjs/proto-signing';
import { FirmaConfig } from "./FirmaConfig";
import { FirmaWalletService } from "./FirmaWalletService";
import { BroadcastTxResponse } from './firmachain/common/stargateclient';
export declare class ContractService {
    private _config;
    constructor(_config: FirmaConfig);
    getContractLogAll(paginationKey?: string): Promise<{
        dataList: ContractLogType[];
        pagination: Pagination;
    }>;
    getContractFileAll(paginationKey?: string): Promise<{
        dataList: ContractFileType[];
        pagination: Pagination;
    }>;
    getContractFile(fileHash: string): Promise<ContractFileType>;
    isContractOwner(fileHash: string, ownerAddress: string): Promise<boolean>;
    getContractLog(logId: string): Promise<ContractLogType>;
    getGasEstimationFromUnSignedTxList(wallet: FirmaWalletService, txList: EncodeObject[], txMisc?: TxMisc): Promise<number>;
    getGasEstimationCreateContractFile(wallet: FirmaWalletService, fileHash: string, timeStamp: number, ownerList: string[], metaDataJsonString: string, txMisc?: TxMisc): Promise<number>;
    getUnsignedTxCreateContractFile(wallet: FirmaWalletService, fileHash: string, timeStamp: number, ownerList: string[], metaDataJsonString: string): Promise<EncodeObject>;
    private getSignedTxCreateContractFile;
    createContractFile(wallet: FirmaWalletService, fileHash: string, timeStamp: number, ownerList: string[], metaDataJsonString: string, txMisc?: TxMisc): Promise<BroadcastTxResponse>;
    getGasEstimationAddContractLog(wallet: FirmaWalletService, contractHash: string, timeStamp: number, eventName: string, ownerAddress: string, jsonString: string, txMisc?: TxMisc): Promise<number>;
    private getSignedTxAddContractLog;
    addContractLog(wallet: FirmaWalletService, contractHash: string, timeStamp: number, eventName: string, ownerAddress: string, jsonString: string, txMisc?: TxMisc): Promise<BroadcastTxResponse>;
    getUnsignedTxAddContractLog(wallet: FirmaWalletService, contractHash: string, timeStamp: number, eventName: string, ownerAddress: string, jsonString: string): Promise<EncodeObject>;
    signAndBroadcast(wallet: FirmaWalletService, msgList: EncodeObject[], txMisc?: TxMisc): Promise<BroadcastTxResponse>;
}
