import { Rpc } from "../../../helpers";
import { MsgCreateValidator, MsgCreateValidatorResponse, MsgEditValidator, MsgEditValidatorResponse, MsgDelegate, MsgDelegateResponse, MsgBeginRedelegate, MsgBeginRedelegateResponse, MsgUndelegate, MsgUndelegateResponse, MsgCancelUnbondingDelegation, MsgCancelUnbondingDelegationResponse, MsgUpdateParams, MsgUpdateParamsResponse } from "./tx";
/** Msg defines the staking Msg service. */
export interface Msg {
/** CreateValidator defines a method for creating a new validator. */
createValidator(request: MsgCreateValidator): Promise<MsgCreateValidatorResponse>;
/** EditValidator defines a method for editing an existing validator. */
editValidator(request: MsgEditValidator): Promise<MsgEditValidatorResponse>;
/**
* Delegate defines a method for performing a delegation of coins
* from a delegator to a validator.
*/
delegate(request: MsgDelegate): Promise<MsgDelegateResponse>;
/**
* BeginRedelegate defines a method for performing a redelegation
* of coins from a delegator and source validator to a destination validator.
*/
beginRedelegate(request: MsgBeginRedelegate): Promise<MsgBeginRedelegateResponse>;
/**
* Undelegate defines a method for performing an undelegation from a
* delegate and a validator.
*/
undelegate(request: MsgUndelegate): Promise<MsgUndelegateResponse>;
/**
* CancelUnbondingDelegation defines a method for performing canceling the unbonding delegation
* and delegate back to previous validator.
*
* Since: cosmos-sdk 0.46
*/
cancelUnbondingDelegation(request: MsgCancelUnbondingDelegation): Promise<MsgCancelUnbondingDelegationResponse>;
/**
* UpdateParams defines an operation for updating the x/staking module
* parameters.
* Since: cosmos-sdk 0.47
*/
updateParams(request: MsgUpdateParams): Promise<MsgUpdateParamsResponse>;
}
export declare class MsgClientImpl implements Msg {
private readonly rpc;
constructor(rpc: Rpc);
createValidator(request: MsgCreateValidator): Promise<MsgCreateValidatorResponse>;
editValidator(request: MsgEditValidator): Promise<MsgEditValidatorResponse>;
delegate(request: MsgDelegate): Promise<MsgDelegateResponse>;
beginRedelegate(request: MsgBeginRedelegate): Promise<MsgBeginRedelegateResponse>;
undelegate(request: MsgUndelegate): Promise<MsgUndelegateResponse>;
cancelUnbondingDelegation(request: MsgCancelUnbondingDelegation): Promise<MsgCancelUnbondingDelegationResponse>;
updateParams(request: MsgUpdateParams): Promise<MsgUpdateParamsResponse>;
}
export declare const createClientImpl: (rpc: Rpc) => MsgClientImpl;