import { TypedDataField } from './eip712';
/**
 * @group Message
 */
export declare abstract class MsgBase<Params, DataRepresentation, ProtoRepresentation, AminoRepresentation, DirectSignRepresentation> {
    params: Params;
    constructor(params: Params);
    abstract toDirectSign(): DirectSignRepresentation;
    abstract toData(): DataRepresentation;
    abstract toProto(): ProtoRepresentation;
    abstract toAmino(): AminoRepresentation;
    abstract toWeb3(): Omit<AminoRepresentation, 'type'> & {
        '@type': string;
    };
    toJSON(): string;
    toEip712Types(): Map<string, TypedDataField[]>;
    toEip712(): {
        type: string;
        value: Omit<AminoRepresentation, 'type'>;
    };
    toDirectSignJSON(): string;
}
