import { MsgAddHostZone, MsgAddHostZoneResponse, MsgFundFeeAbsModuleAccount, MsgFundFeeAbsModuleAccountResponse, MsgRemoveHostZone, MsgRemoveHostZoneResponse, MsgSendQueryIbcDenomTWAP, MsgSendQueryIbcDenomTWAPResponse, MsgSwapCrossChain, MsgSwapCrossChainResponse, MsgUpdateHostZone, MsgUpdateHostZoneResponse, MsgUpdateParams, MsgUpdateParamsResponse, QueryHostChainConfigRequest, QueryHostChainConfigResponse, QueryOsmosisArithmeticTwapRequest, QueryOsmosisArithmeticTwapResponse, QueryFeeabsModuleBalacesRequest, QueryFeeabsModuleBalacesResponse } from '@cheqd/ts-proto-cjs/feeabstraction/feeabs/v1beta1/index';
import { EncodeObject, GeneratedType } from '@cosmjs/proto-signing-cjs';
import { AbstractCheqdSDKModule, MinimalImportableCheqdSDKModule } from './_';
import { DeliverTxResponse, QueryClient } from '@cosmjs/stargate-cjs';
import { DidStdFee, IContext, QueryExtensionSetup } from '../types';
import { CheqdQuerier } from '../querier';
import { CheqdSigningStargateClient } from '../signer';
import { Coin } from 'cosmjs-types/cosmos/base/v1beta1/coin';
export declare const defaultExtensionKey: "feeabs";
export declare const protobufLiterals: {
    readonly MsgAddHostZone: "MsgAddHostZone";
    readonly MsgAddHostZoneResponse: "MsgAddHostZoneResponse";
    readonly MsgFundFeeAbsModuleAccount: "MsgFundFeeAbsModuleAccount";
    readonly MsgFundFeeAbsModuleAccountResponse: "MsgFundFeeAbsModuleAccountResponse";
    readonly MsgRemoveHostZone: "MsgRemoveHostZone";
    readonly MsgRemoveHostZoneResponse: "MsgRemoveHostZoneResponse";
    readonly MsgSendQueryIbcDenomTWAP: "MsgSendQueryIbcDenomTWAP";
    readonly MsgSendQueryIbcDenomTWAPResponse: "MsgSendQueryIbcDenomTWAPResponse";
    readonly MsgSwapCrossChain: "MsgSwapCrossChain";
    readonly MsgSwapCrossChainResponse: "MsgSwapCrossChainResponse";
    readonly MsgUpdateHostZone: "MsgUpdateHostZone";
    readonly MsgUpdateHostZoneResponse: "MsgUpdateHostZoneResponse";
    readonly MsgUpdateParams: "MsgUpdateParams";
    readonly MsgUpdateParamsResponse: "MsgUpdateParamsResponse";
};
export declare const typeUrlMsgAddHostZone: "/feeabstraction.feeabs.v1beta1.MsgAddHostZone";
export declare const typeUrlMsgAddHostZoneResponse: "/feeabstraction.feeabs.v1beta1.MsgAddHostZoneResponse";
export declare const typeUrlMsgFundFeeAbsModuleAccount: "/feeabstraction.feeabs.v1beta1.MsgFundFeeAbsModuleAccount";
export declare const typeUrlMsgFundFeeAbsModuleAccountResponse: "/feeabstraction.feeabs.v1beta1.MsgFundFeeAbsModuleAccountResponse";
export declare const typeUrlMsgRemoveHostZone: "/feeabstraction.feeabs.v1beta1.MsgRemoveHostZone";
export declare const typeUrlMsgRemoveHostZoneResponse: "/feeabstraction.feeabs.v1beta1.MsgRemoveHostZoneResponse";
export declare const typeUrlMsgSendQueryIbcDenomTWAP: "/feeabstraction.feeabs.v1beta1.MsgSendQueryIbcDenomTWAP";
export declare const typeUrlMsgSendQueryIbcDenomTWAPResponse: "/feeabstraction.feeabs.v1beta1.MsgSendQueryIbcDenomTWAPResponse";
export declare const typeUrlMsgSwapCrossChain: "/feeabstraction.feeabs.v1beta1.MsgSwapCrossChain";
export declare const typeUrlMsgSwapCrossChainResponse: "/feeabstraction.feeabs.v1beta1.MsgSwapCrossChainResponse";
export declare const typeUrlMsgUpdateHostZone: "/feeabstraction.feeabs.v1beta1.MsgUpdateHostZone";
export declare const typeUrlMsgUpdateHostZoneResponse: "/feeabstraction.feeabs.v1beta1.MsgUpdateHostZoneResponse";
export declare const typeUrlMsgUpdateParams: "/feeabstraction.feeabs.v1beta1.MsgUpdateParams";
export declare const typeUrlMsgUpdateParamsResponse: "/feeabstraction.feeabs.v1beta1.MsgUpdateParamsResponse";
export interface MsgAddHostZoneEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgAddHostZone;
    readonly value: Partial<MsgAddHostZone>;
}
export declare function isMsgAddHostZoneEncodeObject(obj: EncodeObject): obj is MsgAddHostZoneEncodeObject;
export interface MsgAddHostZoneResponseEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgAddHostZoneResponse;
    readonly value: Partial<MsgAddHostZoneResponse>;
}
export declare function isMsgAddHostZoneResponseEncodeObject(obj: EncodeObject): obj is MsgAddHostZoneResponseEncodeObject;
export interface MsgFundFeeAbsModuleAccountEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgFundFeeAbsModuleAccount;
    readonly value: Partial<MsgFundFeeAbsModuleAccount>;
}
export declare function isMsgFundFeeAbsModuleAccountEncodeObject(obj: EncodeObject): obj is MsgFundFeeAbsModuleAccountEncodeObject;
export interface MsgFundFeeAbsModuleAccountResponseEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgFundFeeAbsModuleAccountResponse;
    readonly value: Partial<MsgFundFeeAbsModuleAccountResponse>;
}
export declare function isMsgFundFeeAbsModuleAccountResponseEncodeObject(obj: EncodeObject): obj is MsgFundFeeAbsModuleAccountResponseEncodeObject;
export interface MsgRemoveHostZoneEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgRemoveHostZone;
    readonly value: Partial<MsgRemoveHostZone>;
}
export declare function isMsgRemoveHostZoneEncodeObject(obj: EncodeObject): obj is MsgRemoveHostZoneEncodeObject;
export interface MsgRemoveHostZoneResponseEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgRemoveHostZoneResponse;
    readonly value: Partial<MsgRemoveHostZoneResponse>;
}
export declare function isMsgRemoveHostZoneResponseEncodeObject(obj: EncodeObject): obj is MsgRemoveHostZoneResponseEncodeObject;
export interface MsgSendQueryIbcDenomTWAPEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgSendQueryIbcDenomTWAP;
    readonly value: Partial<MsgSendQueryIbcDenomTWAP>;
}
export declare function isMsgSendQueryIbcDenomTWAPEncodeObject(obj: EncodeObject): obj is MsgSendQueryIbcDenomTWAPEncodeObject;
export interface MsgSendQueryIbcDenomTWAPResponseEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgSendQueryIbcDenomTWAPResponse;
    readonly value: Partial<MsgSendQueryIbcDenomTWAPResponse>;
}
export declare function isMsgSendQueryIbcDenomTWAPResponseEncodeObject(obj: EncodeObject): obj is MsgSendQueryIbcDenomTWAPResponseEncodeObject;
export interface MsgSwapCrossChainEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgSwapCrossChain;
    readonly value: Partial<MsgSwapCrossChain>;
}
export declare function isMsgSwapCrossChainEncodeObject(obj: EncodeObject): obj is MsgSwapCrossChainEncodeObject;
export interface MsgSwapCrossChainResponseEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgSwapCrossChainResponse;
    readonly value: Partial<MsgSwapCrossChainResponse>;
}
export declare function isMsgSwapCrossChainResponseEncodeObject(obj: EncodeObject): obj is MsgSwapCrossChainResponseEncodeObject;
export interface MsgUpdateHostZoneEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgUpdateHostZone;
    readonly value: Partial<MsgUpdateHostZone>;
}
export declare function isMsgUpdateHostZoneEncodeObject(obj: EncodeObject): obj is MsgUpdateHostZoneEncodeObject;
export interface MsgUpdateHostZoneResponseEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgUpdateHostZoneResponse;
    readonly value: Partial<MsgUpdateHostZoneResponse>;
}
export declare function isMsgUpdateHostZoneResponseEncodeObject(obj: EncodeObject): obj is MsgUpdateHostZoneResponseEncodeObject;
export interface MsgUpdateParamsEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgUpdateParams;
    readonly value: Partial<MsgUpdateParams>;
}
export declare function isMsgUpdateParamsEncodeObject(obj: EncodeObject): obj is MsgUpdateParamsEncodeObject;
export interface MsgUpdateParamsResponseEncodeObject extends EncodeObject {
    readonly typeUrl: typeof typeUrlMsgUpdateParamsResponse;
    readonly value: Partial<MsgUpdateParamsResponse>;
}
export declare function isMsgUpdateParamsResponseEncodeObject(obj: EncodeObject): obj is MsgUpdateParamsResponseEncodeObject;
export type MinimalImportableFeeabstractionModule = MinimalImportableCheqdSDKModule<FeeabstractionModule>;
export type FeeabstractionExtension = {
    readonly [defaultExtensionKey]: {
        readonly hostChainConfig: (request: QueryHostChainConfigRequest) => Promise<QueryHostChainConfigResponse>;
        readonly osmosisArithmeticTwap: (request: QueryOsmosisArithmeticTwapRequest) => Promise<QueryOsmosisArithmeticTwapResponse>;
        readonly feeabsModuleBalances: (request: QueryFeeabsModuleBalacesRequest) => Promise<QueryFeeabsModuleBalacesResponse>;
    };
};
export declare const setupFeeabstractionExtension: (base: QueryClient) => FeeabstractionExtension;
export declare class FeeabstractionModule extends AbstractCheqdSDKModule {
    static readonly registryTypes: Iterable<[string, GeneratedType]>;
    static readonly querierExtensionSetup: QueryExtensionSetup<FeeabstractionExtension>;
    querier: CheqdQuerier & FeeabstractionExtension;
    constructor(signer: CheqdSigningStargateClient, querier: CheqdQuerier & FeeabstractionExtension);
    getRegistryTypes(): Iterable<[string, GeneratedType]>;
    getQuerierExtensionSetup(): QueryExtensionSetup<FeeabstractionExtension>;
    addHostZoneProposal(data: MsgAddHostZone, title: string, deposit: Coin[], proposer: string, fee: DidStdFee, memo?: string, context?: IContext): Promise<DeliverTxResponse>;
    fundFeeAbsModuleAccount(sender: string, amount: Coin[], fee: DidStdFee, memo?: string, context?: IContext): Promise<MsgFundFeeAbsModuleAccountResponse>;
    removeHostZoneProposal(data: MsgRemoveHostZone, title: string, deposit: Coin[], proposer: string, fee: DidStdFee, memo?: string, context?: IContext): Promise<DeliverTxResponse>;
    sendQueryIbcDenomTWAP(sender: string, data: MsgSendQueryIbcDenomTWAP, fee: DidStdFee, memo?: string, context?: IContext): Promise<MsgSendQueryIbcDenomTWAPResponse>;
    swapCrossChain(sender: string, ibcDenom: string, fee: DidStdFee, memo?: string, context?: IContext): Promise<MsgSwapCrossChainResponse>;
    updateHostZoneProposal(data: MsgUpdateHostZone, title: string, deposit: Coin[], proposer: string, fee: DidStdFee, memo?: string, context?: IContext): Promise<DeliverTxResponse>;
    updateParamsProposal(data: MsgUpdateParams, title: string, deposit: Coin[], proposer: string, fee: DidStdFee, memo?: string, context?: IContext): Promise<DeliverTxResponse>;
}
//# sourceMappingURL=feeabstraction.d.ts.map